home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm14.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  126.5 KB  |  5,564 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. /*No:EIFFEL_PARSER.cc*/
  10. /*No:EIFFEL_PARSER.ok*/
  11. void r818a_r5(T818* C,T0* a1){
  12. T0* _sp=NULL;
  13. T0* _infix_minus=NULL;
  14. T0* _infix_plus=NULL;
  15. /*IF*/if (r818skip1(C,'\53')) {
  16. {T627*n=malloc(sizeof(*n));
  17. *n=M627;
  18. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  19. _sp=(T0*)n;
  20. }
  21. /*IF*/if (r818a_e5(C)) {
  22. {T253*n=malloc(sizeof(*n));
  23. *n=M253;
  24. r253make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  25. _infix_plus=(T0*)n;
  26. }
  27. r818a_r5(C,_infix_plus);
  28. }
  29. else {
  30. r818err_exp(_sp,((T0*)ms43_473));
  31. }
  32. /*FI*/}
  33.  else if (r818skip1(C,'\55')) {
  34. {T627*n=malloc(sizeof(*n));
  35. *n=M627;
  36. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  37. _sp=(T0*)n;
  38. }
  39. /*IF*/if (r818a_e5(C)) {
  40. {T574*n=malloc(sizeof(*n));
  41. *n=M574;
  42. r574make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  43. _infix_minus=(T0*)n;
  44. }
  45. r818a_r5(C,_infix_minus);
  46. }
  47. else {
  48. r818err_exp(_sp,((T0*)ms37_473));
  49. }
  50. /*FI*/}
  51. else {
  52. C->_last_expression=a1;
  53. }
  54. /*FI*/}
  55. int r818a_e5(T818* C){
  56. int R=0;
  57. R=r818a_e6(C);
  58. r818a_r6(C,(((T818*)C))->_last_expression/*97*/);
  59. return R;
  60. }
  61. /*No:EIFFEL_PARSER.arguments*/
  62. /*No:EIFFEL_PARSER.fz_creation*/
  63. /*No:EIFFEL_PARSER.em14*/
  64. int r818a_binary(T818* C,T0* a1){
  65. int R=0;
  66. R=1;
  67. /*IF*/if (r818skip2(C,'\74','\75')) {
  68. {T454*n=malloc(sizeof(*n));
  69. *n=M454;
  70. r454make(n,((T0*)ms35_473),a1);
  71. C->_last_binary=(T0*)n;
  72. }
  73. }
  74.  else if (r818skip2(C,'\76','\75')) {
  75. {T454*n=malloc(sizeof(*n));
  76. *n=M454;
  77. r454make(n,((T0*)ms32_473),a1);
  78. C->_last_binary=(T0*)n;
  79. }
  80. }
  81.  else if (r818skip2(C,'\57','\57')) {
  82. {T454*n=malloc(sizeof(*n));
  83. *n=M454;
  84. r454make(n,((T0*)ms45_818),a1);
  85. C->_last_binary=(T0*)n;
  86. }
  87. }
  88.  else if (r818skip2(C,'\134','\134')) {
  89. {T454*n=malloc(sizeof(*n));
  90. *n=M454;
  91. r454make(n,((T0*)ms46_818),a1);
  92. C->_last_binary=(T0*)n;
  93. }
  94. }
  95.  else if (r818skip1(C,'\53')) {
  96. {T454*n=malloc(sizeof(*n));
  97. *n=M454;
  98. r454make(n,((T0*)ms43_473),a1);
  99. C->_last_binary=(T0*)n;
  100. }
  101. }
  102.  else if (r818skip1(C,'\55')) {
  103. {T454*n=malloc(sizeof(*n));
  104. *n=M454;
  105. r454make(n,((T0*)ms37_473),a1);
  106. C->_last_binary=(T0*)n;
  107. }
  108. }
  109.  else if (r818skip1(C,'\52')) {
  110. {T454*n=malloc(sizeof(*n));
  111. *n=M454;
  112. r454make(n,((T0*)ms38_473),a1);
  113. C->_last_binary=(T0*)n;
  114. }
  115. }
  116.  else if (r818skip1(C,'\57')) {
  117. {T454*n=malloc(sizeof(*n));
  118. *n=M454;
  119. r454make(n,((T0*)ms47_473),a1);
  120. C->_last_binary=(T0*)n;
  121. }
  122. }
  123.  else if (r818skip1(C,'\76')) {
  124. {T454*n=malloc(sizeof(*n));
  125. *n=M454;
  126. r454make(n,((T0*)ms33_473),a1);
  127. C->_last_binary=(T0*)n;
  128. }
  129. }
  130.  else if (r818skip1(C,'\74')) {
  131. {T454*n=malloc(sizeof(*n));
  132. *n=M454;
  133. r454make(n,((T0*)ms36_473),a1);
  134. C->_last_binary=(T0*)n;
  135. }
  136. }
  137.  else if (r818skip1(C,'\136')) {
  138. {T454*n=malloc(sizeof(*n));
  139. *n=M454;
  140. r454make(n,((T0*)ms47_818),a1);
  141. C->_last_binary=(T0*)n;
  142. }
  143. }
  144.  else if (r818a_keyword(C,((T0*)ms50_473))) {
  145. {T454*n=malloc(sizeof(*n));
  146. *n=M454;
  147. r454make(n,((T0*)ms50_473),a1);
  148. C->_last_binary=(T0*)n;
  149. }
  150. }
  151.  else if (r818a_keyword(C,((T0*)ms34_473))) {
  152. {T454*n=malloc(sizeof(*n));
  153. *n=M454;
  154. r454make(n,((T0*)ms34_473),a1);
  155. C->_last_binary=(T0*)n;
  156. }
  157. }
  158.  else if (r818a_keyword(C,((T0*)ms27_473))) {
  159. /*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
  160. {T454*n=malloc(sizeof(*n));
  161. *n=M454;
  162. r454make(n,((T0*)ms28_473),a1);
  163. C->_last_binary=(T0*)n;
  164. }
  165. }
  166. else {
  167. {T454*n=malloc(sizeof(*n));
  168. *n=M454;
  169. r454make(n,((T0*)ms27_473),a1);
  170. C->_last_binary=(T0*)n;
  171. }
  172. }
  173. /*FI*/}
  174.  else if (r818a_keyword(C,((T0*)ms41_473))) {
  175. /*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
  176. {T454*n=malloc(sizeof(*n));
  177. *n=M454;
  178. r454make(n,((T0*)ms42_473),a1);
  179. C->_last_binary=(T0*)n;
  180. }
  181. }
  182. else {
  183. {T454*n=malloc(sizeof(*n));
  184. *n=M454;
  185. r454make(n,((T0*)ms41_473),a1);
  186. C->_last_binary=(T0*)n;
  187. }
  188. }
  189. /*FI*/}
  190. else {
  191. C->_last_binary=NULL;
  192. R=0;
  193. }
  194. /*FI*/return R;
  195. }
  196. void r818a_r6(T818* C,T0* a1){
  197. T0* _sp=NULL;
  198. T0* _infix_div=NULL;
  199. T0* _infix_int_rem=NULL;
  200. T0* _infix_int_div=NULL;
  201. T0* _infix_times=NULL;
  202. /*IF*/if (r818skip1(C,'\52')) {
  203. {T627*n=malloc(sizeof(*n));
  204. *n=M627;
  205. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  206. _sp=(T0*)n;
  207. }
  208. /*IF*/if (r818a_e6(C)) {
  209. {T414*n=malloc(sizeof(*n));
  210. *n=M414;
  211. r414make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  212. _infix_times=(T0*)n;
  213. }
  214. r818a_r6(C,_infix_times);
  215. }
  216. else {
  217. r818err_exp(_sp,((T0*)ms38_473));
  218. }
  219. /*FI*/}
  220.  else if (r818skip2(C,'\57','\57')) {
  221. {T627*n=malloc(sizeof(*n));
  222. *n=M627;
  223. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  224. _sp=(T0*)n;
  225. }
  226. /*IF*/if (r818a_e6(C)) {
  227. {T460*n=malloc(sizeof(*n));
  228. *n=M460;
  229. r460make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  230. _infix_int_div=(T0*)n;
  231. }
  232. r818a_r6(C,_infix_int_div);
  233. }
  234. else {
  235. r818err_exp(_sp,((T0*)ms120_818));
  236. }
  237. /*FI*/}
  238.  else if (r818skip2(C,'\134','\134')) {
  239. {T627*n=malloc(sizeof(*n));
  240. *n=M627;
  241. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  242. _sp=(T0*)n;
  243. }
  244. /*IF*/if (r818a_e6(C)) {
  245. {T453*n=malloc(sizeof(*n));
  246. *n=M453;
  247. r453make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  248. _infix_int_rem=(T0*)n;
  249. }
  250. r818a_r6(C,_infix_int_rem);
  251. }
  252. else {
  253. r818err_exp(_sp,((T0*)ms121_818));
  254. }
  255. /*FI*/}
  256.  else if (r818skip1unless2(C,'\57','\75')) {
  257. {T627*n=malloc(sizeof(*n));
  258. *n=M627;
  259. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  260. _sp=(T0*)n;
  261. }
  262. /*IF*/if (r818a_e6(C)) {
  263. {T520*n=malloc(sizeof(*n));
  264. *n=M520;
  265. r520make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  266. _infix_div=(T0*)n;
  267. }
  268. r818a_r6(C,_infix_div);
  269. }
  270. else {
  271. r818err_exp(_sp,((T0*)ms47_473));
  272. }
  273. /*FI*/}
  274. else {
  275. C->_last_expression=a1;
  276. }
  277. /*FI*/}
  278. int r818a_e6(T818* C){
  279. int R=0;
  280. R=r818a_e7(C);
  281. r818a_r7(C,(((T818*)C))->_last_expression/*97*/);
  282. return R;
  283. }
  284. /*No:EIFFEL_PARSER.em15*/
  285. /*No:EIFFEL_PARSER.last_parent*/
  286. void r818a_r7(T818* C,T0* a1){
  287. T0* _sp=NULL;
  288. T0* _infix_power=NULL;
  289. /*IF*/if (r818skip1(C,'\136')) {
  290. {T627*n=malloc(sizeof(*n));
  291. *n=M627;
  292. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  293. _sp=(T0*)n;
  294. }
  295. /*IF*/if (r818a_e7(C)) {
  296. {T557*n=malloc(sizeof(*n));
  297. *n=M557;
  298. r557make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  299. _infix_power=(T0*)n;
  300. }
  301. r818a_r7(C,_infix_power);
  302. }
  303. else {
  304. r818err_exp(_sp,((T0*)ms122_818));
  305. }
  306. /*FI*/}
  307. else {
  308. C->_last_expression=a1;
  309. }
  310. /*FI*/}
  311. int r818a_e7(T818* C){
  312. int R=0;
  313. R=r818a_e8(C);
  314. r818a_r8(C,(((T818*)C))->_last_expression/*97*/);
  315. return R;
  316. }
  317. int r818a_boolean_constant(T818* C){
  318. int R=0;
  319. /*IF*/if (r818a_keyword(C,((T0*)ms47_470))) {
  320. {T849*n=malloc(sizeof(*n));
  321. *n=M849;
  322. /*[IRF3.3make*/((((T849*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  323. /*]*/
  324. C->_last_boolean_constant=(T0*)n;
  325. }
  326. R=1;
  327. }
  328.  else if (r818a_keyword(C,((T0*)ms17_470))) {
  329. {T367*n=malloc(sizeof(*n));
  330. *n=M367;
  331. /*[IRF3.3make*/((((T367*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  332. /*]*/
  333. C->_last_boolean_constant=(T0*)n;
  334. }
  335. R=1;
  336. }
  337. /*FI*/return R;
  338. }
  339. /*No:EIFFEL_PARSER.last_type*/
  340. int r818a_base_type(T818* C){
  341. int R=0;
  342. T0* _sp=NULL;
  343. R=1;
  344. /*IF*/if (r818a_keyword(C,((T0*)ms1_473))) {
  345. {T669*n=malloc(sizeof(*n));
  346. *n=M669;
  347. r669make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  348. C->_last_base_type=(T0*)n;
  349. }
  350. }
  351.  else if (r818a_keyword(C,((T0*)ms2_473))) {
  352. {T627*n=malloc(sizeof(*n));
  353. *n=M627;
  354. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  355. _sp=(T0*)n;
  356. }
  357. /*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
  358. {T709*n=malloc(sizeof(*n));
  359. *n=M709;
  360. r709make(n,_sp,(((T818*)C))->_last_type/*157*/);
  361. C->_last_base_type=(T0*)n;
  362. }
  363. }
  364. else {
  365. r818fcp(C,((T0*)ms40_818));
  366. }
  367. /*FI*/}
  368.  else if (r818a_keyword(C,((T0*)ms18_473))) {
  369. {T627*n=malloc(sizeof(*n));
  370. *n=M627;
  371. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  372. _sp=(T0*)n;
  373. }
  374. /*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
  375. {T933*n=malloc(sizeof(*n));
  376. *n=M933;
  377. r933make(n,_sp,(((T818*)C))->_last_type/*157*/);
  378. C->_last_base_type=(T0*)n;
  379. }
  380. }
  381. else {
  382. r818fcp(C,((T0*)ms41_818));
  383. }
  384. /*FI*/}
  385.  else if (r818a_keyword(C,((T0*)ms42_818))) {
  386. {T627*n=malloc(sizeof(*n));
  387. *n=M627;
  388. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  389. _sp=(T0*)n;
  390. }
  391. /*IF*/if (((r818skip1(C,'\133'))&&(r818a_type(C)))&&(r818skip1(C,'\135'))) {
  392. {T933*n=malloc(sizeof(*n));
  393. *n=M933;
  394. r933make(n,_sp,(((T818*)C))->_last_type/*157*/);
  395. C->_last_base_type=(T0*)n;
  396. }
  397. }
  398. else {
  399. r818fcp(C,((T0*)ms43_818));
  400. }
  401. /*FI*/r818warning(_sp,((T0*)ms44_818));
  402. }
  403.  else if (r818a_keyword(C,((T0*)ms6_473))) {
  404. {T707*n=malloc(sizeof(*n));
  405. *n=M707;
  406. r707make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  407. C->_last_base_type=(T0*)n;
  408. }
  409. }
  410.  else if (r818a_keyword(C,((T0*)ms8_473))) {
  411. {T252*n=malloc(sizeof(*n));
  412. *n=M252;
  413. r252make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  414. C->_last_base_type=(T0*)n;
  415. }
  416. }
  417.  else if (r818a_keyword(C,((T0*)ms11_473))) {
  418. {T388*n=malloc(sizeof(*n));
  419. *n=M388;
  420. r388make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  421. C->_last_base_type=(T0*)n;
  422. }
  423. }
  424.  else if (r818a_keyword(C,((T0*)ms15_473))) {
  425. {T788*n=malloc(sizeof(*n));
  426. *n=M788;
  427. r788make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  428. C->_last_base_type=(T0*)n;
  429. }
  430. }
  431.  else if (r818a_keyword(C,((T0*)ms19_473))) {
  432. {T284*n=malloc(sizeof(*n));
  433. *n=M284;
  434. r284make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  435. C->_last_base_type=(T0*)n;
  436. }
  437. }
  438.  else if (r818a_keyword(C,((T0*)ms21_473))) {
  439. {T900*n=malloc(sizeof(*n));
  440. *n=M900;
  441. r900make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  442. C->_last_base_type=(T0*)n;
  443. }
  444. }
  445.  else if (r818a_keyword(C,((T0*)ms23_473))) {
  446. {T209*n=malloc(sizeof(*n));
  447. *n=M209;
  448. r209make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  449. C->_last_base_type=(T0*)n;
  450. }
  451. }
  452.  else if (r818a_keyword(C,((T0*)ms25_473))) {
  453. {T491*n=malloc(sizeof(*n));
  454. *n=M491;
  455. r491make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  456. C->_last_base_type=(T0*)n;
  457. }
  458. }
  459. else {
  460. R=0;
  461. }
  462. /*FI*/return R;
  463. }
  464. /*No:EIFFEL_PARSER.em16*/
  465. /*No:EIFFEL_PARSER.nb_warnings*/
  466. /*No:EIFFEL_PARSER.last_expression*/
  467. /*No:EIFFEL_PARSER.last_character_constant*/
  468. void r818a_r8(T818* C,T0* a1){
  469. T0* _infix_freeop=NULL;
  470. T0* _infix_name=NULL;
  471. /*IF*/if (r818a_free_operator(C)) {
  472. _infix_name=r511to_infix_name_use(((T511*)(oBC818tmp_name)));
  473. /*IF*/if (r818a_e8(C)) {
  474. {T534*n=malloc(sizeof(*n));
  475. *n=M534;
  476. r534make(n,a1,_infix_name,(((T818*)C))->_last_expression/*97*/);
  477. _infix_freeop=(T0*)n;
  478. }
  479. r818a_r8(C,_infix_freeop);
  480. }
  481. else {
  482. r818err_exp((((T454*)((T454*)_infix_name)))->_start_position/*8*/,(((T454*)((T454*)_infix_name)))->_to_string/*4*/);
  483. }
  484. /*FI*/}
  485. else {
  486. C->_last_expression=a1;
  487. }
  488. /*FI*/}
  489. int r818a_e8(T818* C){
  490. int R=0;
  491. T0* _sp=NULL;
  492. T0* _prefix_freeop=NULL;
  493. T0* _op=NULL;
  494. T0* _prefix_moins=NULL;
  495. T0* _prefix_plus=NULL;
  496. T0* _prefix_not=NULL;
  497. /*IF*/if (r818a_keyword(C,((T0*)ms40_473))) {
  498. {T627*n=malloc(sizeof(*n));
  499. *n=M627;
  500. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  501. _sp=(T0*)n;
  502. }
  503. /*IF*/if (r818a_e8(C)) {
  504. {T180*n=malloc(sizeof(*n));
  505. *n=M180;
  506. r180make(n,_sp,(((T818*)C))->_last_expression/*97*/);
  507. _prefix_not=(T0*)n;
  508. }
  509. C->_last_expression=_prefix_not;
  510. R=1;
  511. }
  512. else {
  513. r818err_exp(_sp,((T0*)ms40_473));
  514. }
  515. /*FI*/}
  516.  else if (r818skip1(C,'\53')) {
  517. {T627*n=malloc(sizeof(*n));
  518. *n=M627;
  519. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  520. _sp=(T0*)n;
  521. }
  522. /*IF*/if (r818a_e8(C)) {
  523. {T767*n=malloc(sizeof(*n));
  524. *n=M767;
  525. r767make(n,_sp,(((T818*)C))->_last_expression/*97*/);
  526. _prefix_plus=(T0*)n;
  527. }
  528. C->_last_expression=_prefix_plus;
  529. R=1;
  530. }
  531. else {
  532. r818err_exp(_sp,((T0*)ms73_818));
  533. }
  534. /*FI*/}
  535.  else if (r818skip1(C,'\55')) {
  536. {T627*n=malloc(sizeof(*n));
  537. *n=M627;
  538. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  539. _sp=(T0*)n;
  540. }
  541. /*IF*/if (r818a_e8(C)) {
  542. {T72*n=malloc(sizeof(*n));
  543. *n=M72;
  544. r72make(n,_sp,(((T818*)C))->_last_expression/*97*/);
  545. _prefix_moins=(T0*)n;
  546. }
  547. C->_last_expression=_prefix_moins;
  548. R=1;
  549. }
  550. else {
  551. r818err_exp(_sp,((T0*)ms74_818));
  552. }
  553. /*FI*/}
  554.  else if (r818a_free_operator(C)) {
  555. _op=r511to_prefix_name(((T511*)(oBC818tmp_name)));
  556. /*IF*/if (r818a_e8(C)) {
  557. {T990*n=malloc(sizeof(*n));
  558. *n=M990;
  559. /*[IRF3.6make*/{T990* C1=n;
  560. T0* b1=(((T818*)C))->_last_expression/*97*/;
  561. T0* b2=_op;
  562. r990make_call0(C1,b1,b2);
  563. }/*]*/
  564. _prefix_freeop=(T0*)n;
  565. }
  566. C->_last_expression=_prefix_freeop;
  567. R=1;
  568. }
  569. else {
  570. /*[IRF3.6append*/{T0* b1=((T0*)ms75_818);
  571. r7append(((T7*)(oBC683explanation)),b1);
  572. }/*]*/
  573. r818err_exp((((T406*)((T406*)_op)))->_start_position/*8*/,(((T406*)((T406*)_op)))->_to_string/*4*/);
  574. }
  575. /*FI*/}
  576. else {
  577. R=r818a_e9(C);
  578. }
  579. /*FI*/return R;
  580. }
  581. int r818a_feature_declaration(T818* C){
  582. int R=0;
  583. r505initialize(((T505*)(oBC818tmp_feature)));
  584. /*IF*/if (r818a_keyword(C,((T0*)ms20_470))) {
  585. /*IF*/if (r818a_feature_name(C)) {
  586. R=1;
  587. X776set_is_frozen((((T818*)C))->_last_feature_name/*109*/,1);
  588. /*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
  589. r855add_last(((T855*)(oBC505names)),b1);
  590. }/*]*/
  591. }
  592. else {
  593. r818fcp(C,((T0*)ms140_818));
  594. }
  595. /*FI*/}
  596.  else if (r818a_feature_name(C)) {
  597. R=1;
  598. /*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
  599. r855add_last(((T855*)(oBC505names)),b1);
  600. }/*]*/
  601. }
  602. /*FI*/while (!(!(r818skip1(C,'\54')))) {
  603. /*IF*/if (r818a_keyword(C,((T0*)ms20_470))) {
  604. /*IF*/if (r818a_feature_name(C)) {
  605. X776set_is_frozen((((T818*)C))->_last_feature_name/*109*/,1);
  606. /*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
  607. r855add_last(((T855*)(oBC505names)),b1);
  608. }/*]*/
  609. }
  610. else {
  611. r818fcp(C,((T0*)ms92_818));
  612. }
  613. /*FI*/}
  614.  else if (r818a_feature_name(C)) {
  615. /*[IRF3.6add_synonym*/{T0* b1=(((T818*)C))->_last_feature_name/*109*/;
  616. r855add_last(((T855*)(oBC505names)),b1);
  617. }/*]*/
  618. }
  619. else {
  620. /*[IRF3.6ecp*/{T818* C1=C;
  621. T0* b1=((T0*)ms93_818);
  622. r818error(r818current_position(C1),b1);
  623. }/*]*/
  624. }
  625. /*FI*/}
  626. /*IF*/if (R) {
  627. r818a_formal_arg_list(C);
  628. C->_function_type=NULL;
  629. /*IF*/if (r818skip1(C,'\72')) {
  630. /*IF*/if (r818a_type(C)) {
  631. C->_function_type=(((T818*)C))->_last_type/*157*/;
  632. /*[IRF3.3set_type*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_type)=((((T818*)C))->_last_type/*157*/);
  633. /*]*/
  634. }
  635. else {
  636. r818fcp(C,((T0*)ms156_818));
  637. }
  638. /*FI*/}
  639. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms27_470))) {
  640. /*IF*/if (r818a_keyword(C,((T0*)ms49_470))) {
  641. C->_last_feature_declaration=r505to_cst_att_unique(((T505*)(oBC818tmp_feature)));
  642. }
  643.  else if (r818a_boolean_constant(C)) {
  644. C->_last_feature_declaration=r505to_cst_att_boolean(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_boolean_constant/*81*/);
  645. }
  646.  else if (r818a_character_constant(C)) {
  647. C->_last_feature_declaration=r505to_cst_att_character(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_character_constant/*85*/);
  648. }
  649.  else if (r818a_manifest_string(C)) {
  650. C->_last_feature_declaration=r505to_cst_att_string(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_manifest_string/*145*/);
  651. }
  652.  else if (r818a_bit_constant(C)) {
  653. C->_last_feature_declaration=r505to_cst_att_bit(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_bit_constant/*77*/);
  654. }
  655.  else if (r818a_real_constant(C)) {
  656. C->_last_feature_declaration=r505to_cst_att_real(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_real_constant/*153*/);
  657. }
  658.  else if (r818a_integer_constant(C)) {
  659. C->_last_feature_declaration=r505to_cst_att_integer(((T505*)(oBC818tmp_feature)),(((T818*)C))->_last_integer_constant/*129*/);
  660. }
  661. else {
  662. C->_last_feature_declaration=r818a_routine(C);
  663. }
  664. /*FI*/}
  665. else {
  666. C->_last_feature_declaration=r505to_writable_attribute(((T505*)(oBC818tmp_feature)));
  667. }
  668. /*FI*/C->_function_type=NULL;
  669. C->_arguments=NULL;
  670. }
  671. /*FI*/return R;
  672. }
  673. /*No:EIFFEL_PARSER.us_integer*/
  674. /*No:EIFFEL_PARSER.em17*/
  675. int r818a_integer_constant(T818* C){
  676. int R=0;
  677. int _c=0;
  678. int _l=0;
  679. /*IF*/if (r818skip1(C,'\53')) {
  680. _l=(((T818*)C))->_start_line/*169*/;
  681. _c=(((T818*)C))->_start_column/*165*/;
  682. /*IF*/if (r818a_integer(C)) {
  683. r627set_line_column(((T627*)((((T342*)((T342*)((((T818*)C))->_last_integer_constant/*129*/))))->_start_position/*12*/)),_l,_c);
  684. R=1;
  685. }
  686. else {
  687. r818fcp(C,((T0*)ms69_470));
  688. }
  689. /*FI*/}
  690.  else if (r818skip1(C,'\55')) {
  691. _l=(((T818*)C))->_start_line/*169*/;
  692. _c=(((T818*)C))->_start_column/*165*/;
  693. /*IF*/if (r818a_integer(C)) {
  694. r627set_line_column(((T627*)((((T342*)((T342*)((((T818*)C))->_last_integer_constant/*129*/))))->_start_position/*12*/)),_l,_c);
  695. r342unary_minus(((T342*)((((T818*)C))->_last_integer_constant/*129*/)));
  696. R=1;
  697. }
  698. else {
  699. r818fcp(C,((T0*)ms69_470));
  700. }
  701. /*FI*/}
  702. else {
  703. R=r818a_integer(C);
  704. }
  705. /*FI*/return R;
  706. }
  707. void r818a_creation_clause(T818* C,T0* a1){
  708. T0* _creation_clause=NULL;
  709. T0* _list=NULL;
  710. T0* _comments=NULL;
  711. T0* _clients=NULL;
  712. _clients=r818a_clients(C);
  713. _comments=r818get_comments(C);
  714. /*IF*/if (r818a_feature_list(C)) {
  715. _list=(((T818*)C))->_last_feature_list/*105*/;
  716. }
  717. /*FI*/{T583*n=malloc(sizeof(*n));
  718. *n=M583;
  719. r583make(n,a1,_clients,_comments,_list);
  720. _creation_clause=(T0*)n;
  721. }
  722. r605add_creation_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_creation_clause);
  723. }
  724. int r818a_e9(T818* C){
  725. int R=0;
  726. T0* _e_old=NULL;
  727. /*IF*/if (r818a_keyword(C,((T0*)ms34_470))) {
  728. /*IF*/if (!((((T818*)C))->_in_ensure/*37*/)) {
  729. r818error(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),((T0*)ms76_818));
  730. }
  731. /*FI*//*IF*/if (r818a_e10(C)) {
  732. {T664*n=malloc(sizeof(*n));
  733. *n=M664;
  734. /*[IRF3.3make*/((((T664*)(n)))->_expression)=((((T818*)C))->_last_expression/*97*/);
  735. /*]*/
  736. _e_old=(T0*)n;
  737. }
  738. C->_last_expression=_e_old;
  739. R=1;
  740. }
  741. else {
  742. r818fcp(C,((T0*)ms77_818));
  743. }
  744. /*FI*/}
  745. else {
  746. R=r818a_e10(C);
  747. }
  748. /*FI*/return R;
  749. }
  750. int r818a_index_value(T818* C){
  751. int R=0;
  752. /*IF*/if (r818a_identifier(C)) {
  753. C->_last_index_value=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  754. R=1;
  755. }
  756.  else if (r818a_manifest_constant(C)) {
  757. C->_last_index_value=(((T818*)C))->_last_manifest_constant/*141*/;
  758. R=1;
  759. }
  760. /*FI*/return R;
  761. }
  762. /*No:EIFFEL_PARSER.em18*/
  763. void r818a_new_export_list(T818* C){
  764. int _state=0;
  765. T0* _new_export_item=NULL;
  766. T0* _items=NULL;
  767. T0* _clients=NULL;
  768. T0* _sp=NULL;
  769. T0* _export_list=NULL;
  770. /*IF*/if (r818a_keyword(C,((T0*)ms15_470))) {
  771. {T627*n=malloc(sizeof(*n));
  772. *n=M627;
  773. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  774. _sp=(T0*)n;
  775. }
  776. while (!((_state)>(3))) {
  777. {int z1=_state;
  778.  
  779. if((0==z1)){
  780. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\173')) {
  781. _clients=r818a_clients(C);
  782. _state=1;
  783. }
  784.  else if (((((T818*)C))->_cc/*24*/)==('\73')) {
  785. /*[IRF3.6wcp*/{T818* C1=C;
  786. T0* b1=((T0*)ms68_470);
  787. r818warning(r818current_position(C1),b1);
  788. }/*]*/
  789. C->_ok=r818skip1(C,'\73');
  790. }
  791. else {
  792. /*IF*/if ((_items)!=((void*)(NULL))) {
  793. {T671*n=malloc(sizeof(*n));
  794. *n=M671;
  795. r671make(n,_sp,_items);
  796. _export_list=(T0*)n;
  797. }
  798. /*[IRF3.3set_export*/((((T877*)(((T877*)((((T818*)C))->_last_parent/*149*/)))))->_export_list)=(_export_list);
  799. /*]*/
  800. }
  801. /*FI*/_state=4;
  802. }
  803. /*FI*/}
  804.  else 
  805. if((1==z1)){
  806. /*IF*/if (r818a_keyword(C,((T0*)ms2_470))) {
  807. {T542*n=malloc(sizeof(*n));
  808. *n=M542;
  809. r542make_all(n,_clients);
  810. _new_export_item=(T0*)n;
  811. }
  812. /*IF*/if ((_items)==((void*)(NULL))) {
  813. _items=se_ma587(1,_new_export_item);
  814. }
  815. else {
  816. r587add_last(((T587*)_items),_new_export_item);
  817. }
  818. /*FI*/_state=2;
  819. }
  820. else {
  821. /*IF*/if (r818a_feature_list(C)) {
  822. {T542*n=malloc(sizeof(*n));
  823. *n=M542;
  824. r542make(n,_clients,(((T818*)C))->_last_feature_list/*105*/);
  825. _new_export_item=(T0*)n;
  826. }
  827. /*IF*/if ((_items)==((void*)(NULL))) {
  828. _items=se_ma587(1,_new_export_item);
  829. }
  830. else {
  831. r587add_last(((T587*)_items),_new_export_item);
  832. }
  833. /*FI*/_state=2;
  834. }
  835. else {
  836. _state=3;
  837. }
  838. /*FI*/}
  839. /*FI*/}
  840.  else 
  841. if((2==z1)){
  842. /*IF*/if (r818skip1(C,'\73')) {
  843. _state=0;
  844. }
  845.  else if (((((T818*)C))->_cc/*24*/)==('\173')) {
  846. /*[IRF3.6wcp*/{T818* C1=C;
  847. T0* b1=((T0*)ms144_818);
  848. r818warning(r818current_position(C1),b1);
  849. }/*]*/
  850. _state=0;
  851. }
  852. else {
  853. /*IF*/if ((_items)!=((void*)(NULL))) {
  854. {T671*n=malloc(sizeof(*n));
  855. *n=M671;
  856. r671make(n,_sp,_items);
  857. _export_list=(T0*)n;
  858. }
  859. /*[IRF3.3set_export*/((((T877*)(((T877*)((((T818*)C))->_last_parent/*149*/)))))->_export_list)=(_export_list);
  860. /*]*/
  861. }
  862. /*FI*/_state=4;
  863. }
  864. /*FI*/}
  865.  else{r818fcp(C,((T0*)ms149_818));
  866. _state=4;
  867. }}
  868. }
  869. }
  870. /*FI*/}
  871. /*No:EIFFEL_PARSER.last_manifest_string*/
  872. /*No:EIFFEL_PARSER.last_base_type*/
  873. /*No:EIFFEL_PARSER.em19*/
  874. /*No:EIFFEL_PARSER.last_comments*/
  875. int r818a_retry(T818* C){
  876. int R=0;
  877. /*IF*/if (r818a_keyword(C,((T0*)ms42_470))) {
  878. /*IF*/if (!((((T818*)C))->_in_rescue/*41*/)) {
  879. r818error(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),((T0*)ms30_818));
  880. }
  881. /*FI*/{T526*n=malloc(sizeof(*n));
  882. *n=M526;
  883. /*[IRF3.3make*/((((T526*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  884. /*]*/
  885. C->_last_instruction=(T0*)n;
  886. }
  887. R=1;
  888. }
  889. /*FI*/return R;
  890. }
  891. /*No:EIFFEL_PARSER.drop_comments*/
  892. int r818a_e10(T818* C){
  893. int R=0;
  894. /*IF*/if (r818a_strip(C)) {
  895. R=1;
  896. }
  897.  else if (r818skip1(C,'\50')) {
  898. R=1;
  899. /*IF*/if (r818a_expression(C)) {
  900. /*IF*/if (r818skip1(C,'\51')) {
  901. r818a_r10(C,0,(((T818*)C))->_last_expression/*97*/,NULL,NULL);
  902. }
  903. else {
  904. r818fcp(C,((T0*)ms78_818));
  905. }
  906. /*FI*/}
  907. else {
  908. r818fcp(C,((T0*)ms79_818));
  909. }
  910. /*FI*/}
  911.  else if (r818a_manifest_constant(C)) {
  912. C->_last_expression=(((T818*)C))->_last_manifest_constant/*141*/;
  913. R=1;
  914. /*IF*/if (r818skip1unless2(C,'\56','\56')) {
  915. /*[IRF3.6wcp*/{T818* C1=C;
  916. T0* b1=((T0*)ms80_818);
  917. r818warning(r818current_position(C1),b1);
  918. }/*]*/
  919. r818a_after_a_dot(C,0,(((T818*)C))->_last_expression/*97*/);
  920. }
  921. /*FI*/}
  922.  else if (r818a_identifier(C)) {
  923. R=1;
  924. /*IF*/if (((((r818a_result(C))||(r818a_current(C)))||(r818a_void(C)))||(r818a_local_variable(C)))||(r818a_argument(C))) {
  925. r818a_r10(C,0,(((T818*)C))->_last_expression/*97*/,NULL,NULL);
  926. }
  927. else {
  928. r818a_function_call(C);
  929. }
  930. /*FI*/}
  931. /*FI*/return R;
  932. }
  933. /*No:EIFFEL_PARSER.last_prefix*/
  934. void r818a_r10(T818* C,int a1,T0* a2,T0* a3,T0* a4){
  935. /*IF*/if (r818skip1unless2(C,'\56','\56')) {
  936. r818a_after_a_dot(C,a1,r818to_call(a2,a3,a4));
  937. }
  938. else {
  939. /*IF*/if (a1) {
  940. C->_last_instruction=r818to_proc_call(C,a2,a3,a4);
  941. C->_last_expression=NULL;
  942. }
  943. else {
  944. C->_last_expression=r818to_call(a2,a3,a4);
  945. C->_last_instruction=NULL;
  946. }
  947. /*FI*/}
  948. /*FI*/}
  949. void r818skip_comments(T818* C){
  950. int _state=0;
  951. T0* _sp=NULL;
  952. while (!((_state)==(2))) {
  953. {int z1=_state;
  954.  
  955. if((0==z1)){
  956. {int z2=(((T818*)C))->_cc/*24*/;
  957.  
  958. if(((9<=z2)&&(z2<=10))||(32==z2)){
  959. r818next_char(C);
  960. }
  961.  else 
  962. if((45==z2)){
  963. r818next_char(C);
  964. _state=1;
  965. }
  966.  else{_state=2;
  967. }}
  968. }
  969.  else {{int z2=(((T818*)C))->_cc/*24*/;
  970.  
  971. if((45==z2)){
  972. /*IF*/if ((((T818*)C))->_drop_comments/*4*/) {
  973. }
  974. else {
  975. /*IF*/if (((((T818*)C))->_last_comments/*25*/)==((void*)(NULL))) {
  976. {T627*n=malloc(sizeof(*n));
  977. *n=M627;
  978. r627make(n,(((T818*)C))->_line/*16*/,((((T818*)C))->_column/*12*/)-(1));
  979. _sp=(T0*)n;
  980. }
  981. }
  982. /*FI*/}
  983. /*FI*/r818next_char(C);
  984. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC818lcs)))))->_count)=(0);
  985. /*]*/
  986. while (!(((((T818*)C))->_cc/*24*/)==('\n'))) {
  987. r7extend(((T7*)(oBC818lcs)),(((T818*)C))->_cc/*24*/);
  988. r818next_char(C);
  989. }
  990. /*IF*/if ((((T818*)C))->_drop_comments/*4*/) {
  991. }
  992. else {
  993. /*IF*/if (((((T818*)C))->_last_comments/*25*/)==((void*)(NULL))) {
  994. {T393*n=malloc(sizeof(*n));
  995. *n=M393;
  996. r393make(n,_sp,se_ma52(1,r7twin(((T7*)(oBC818lcs)))));
  997. C->_last_comments=(T0*)n;
  998. }
  999. }
  1000. else {
  1001. /*[IRF3.5add_last*/r52add_last(((T52*)((((T393*)((T393*)((((T818*)C))->_last_comments/*25*/))))->_list/*4*/)),r7twin(((T7*)(oBC818lcs))));
  1002. /*]*/
  1003. }
  1004. /*FI*/}
  1005. /*FI*/_state=0;
  1006. }
  1007.  else{r818prev_char(C);
  1008. _state=2;
  1009. }}
  1010. }}
  1011. }
  1012. }
  1013. /*No:EIFFEL_PARSER.last_class_type*/
  1014. /*No:EIFFEL_PARSER.us_array*/
  1015. /*No:EIFFEL_PARSER.fz_c_withoutcurrent*/
  1016. T0* r818to_proc_call(T818* C,T0* a1,T0* a2,T0* a3){
  1017. T0* R=NULL;
  1018. /*IF*/if ((a2)==((void*)(NULL))) {
  1019. r818fcp(C,((T0*)ms135_818));
  1020. }
  1021.  else if ((a3)==((void*)(NULL))) {
  1022. {T268*n=malloc(sizeof(*n));
  1023. *n=M268;
  1024. r268make(n,a1,a2);
  1025. R=(T0*)n;
  1026. }
  1027. }
  1028.  else if ((r431count(((T431*)a3)))==(1)) {
  1029. {T317*n=malloc(sizeof(*n));
  1030. *n=M317;
  1031. r317make(n,a1,a2,a3);
  1032. R=(T0*)n;
  1033. }
  1034. }
  1035. else {
  1036. {T568*n=malloc(sizeof(*n));
  1037. *n=M568;
  1038. r568make(n,a1,a2,a3);
  1039. R=(T0*)n;
  1040. }
  1041. }
  1042. /*FI*/return R;
  1043. }
  1044. int r818a_tag_mark(T818* C){
  1045. int R=0;
  1046. /*IF*/if (r818a_identifier(C)) {
  1047. /*IF*/if (r818skip1unless2(C,'\72','\75')) {
  1048. R=1;
  1049. C->_last_tag_mark=r511to_tag_name(((T511*)(oBC818tmp_name)));
  1050. }
  1051. else {
  1052. C->_last_tag_mark=NULL;
  1053. r818go_back_at(C,(((T511*)((T511*)(oBC818tmp_name))))->_li/*8*/,(((T511*)((T511*)(oBC818tmp_name))))->_co/*4*/);
  1054. }
  1055. /*FI*/}
  1056. else {
  1057. C->_last_tag_mark=NULL;
  1058. }
  1059. /*FI*/return R;
  1060. }
  1061. /*No:EIFFEL_PARSER.nb_errors*/
  1062. /*No:EIFFEL_PARSER.start_line*/
  1063. void r818a_index_list(T818* C){
  1064. while (!(!(r818a_index_clause(C)))) {
  1065. C->_ok=r818skip1(C,'\73');
  1066. }
  1067. }
  1068. /*No:EIFFEL_PARSER.last_real_constant*/
  1069. T0* r818a_external(T818* C){
  1070. T0* R=NULL;
  1071. T0* _l=NULL;
  1072. /*IF*/if (((((T818*)C))->_cc/*24*/)!=('\42')) {
  1073. /*[IRF3.6wcp*/{T818* C1=C;
  1074. T0* b1=((T0*)ms157_818);
  1075. r818warning(r818current_position(C1),b1);
  1076. }/*]*/
  1077. }
  1078. else {
  1079. C->_ok=r818skip1(C,'\42');
  1080. }
  1081. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms121_470))) {
  1082. {T85*n=malloc(sizeof(*n));
  1083. *n=M85;
  1084. _l=(T0*)n;
  1085. }
  1086. }
  1087.  else if (r818a_keyword(C,((T0*)ms98_470))) {
  1088. {T893*n=malloc(sizeof(*n));
  1089. *n=M893;
  1090. _l=(T0*)n;
  1091. }
  1092. }
  1093.  else if (r818a_keyword(C,((T0*)ms90_470))) {
  1094. {T240*n=malloc(sizeof(*n));
  1095. *n=M240;
  1096. _l=(T0*)n;
  1097. }
  1098. }
  1099.  else if (r818a_keyword(C,((T0*)ms99_470))) {
  1100. {T320*n=malloc(sizeof(*n));
  1101. *n=M320;
  1102. _l=(T0*)n;
  1103. }
  1104. }
  1105.  else if (r818a_keyword(C,((T0*)ms91_470))) {
  1106. {T680*n=malloc(sizeof(*n));
  1107. *n=M680;
  1108. _l=(T0*)n;
  1109. }
  1110. }
  1111.  else if (r818a_keyword(C,((T0*)ms81_818))) {
  1112. {T85*n=malloc(sizeof(*n));
  1113. *n=M85;
  1114. _l=(T0*)n;
  1115. }
  1116. r818wcpefnc(C,((T0*)ms82_818),((T0*)ms121_470));
  1117. }
  1118.  else if (r818a_keyword(C,((T0*)ms83_818))) {
  1119. {T893*n=malloc(sizeof(*n));
  1120. *n=M893;
  1121. _l=(T0*)n;
  1122. }
  1123. r818wcpefnc(C,((T0*)ms84_818),((T0*)ms98_470));
  1124. }
  1125.  else if (r818a_keyword(C,((T0*)ms85_818))) {
  1126. {T240*n=malloc(sizeof(*n));
  1127. *n=M240;
  1128. _l=(T0*)n;
  1129. }
  1130. r818wcpefnc(C,((T0*)ms86_818),((T0*)ms90_470));
  1131. }
  1132.  else if (r818a_keyword(C,((T0*)ms87_818))) {
  1133. {T320*n=malloc(sizeof(*n));
  1134. *n=M320;
  1135. _l=(T0*)n;
  1136. }
  1137. }
  1138.  else if (r818a_keyword(C,((T0*)ms88_818))) {
  1139. {T680*n=malloc(sizeof(*n));
  1140. *n=M680;
  1141. _l=(T0*)n;
  1142. }
  1143. r818wcpefnc(C,((T0*)ms89_818),((T0*)ms91_470));
  1144. }
  1145.  else if (r818a_keyword(C,((T0*)ms28_470))) {
  1146. {T300*n=malloc(sizeof(*n));
  1147. *n=M300;
  1148. _l=(T0*)n;
  1149. }
  1150. }
  1151.  else if (r818a_keyword(C,((T0*)ms29_470))) {
  1152. {T970*n=malloc(sizeof(*n));
  1153. *n=M970;
  1154. _l=(T0*)n;
  1155. }
  1156. }
  1157. else {
  1158. r818fcp(C,((T0*)ms90_818));
  1159. }
  1160. /*FI*//*IF*/if (((((T818*)C))->_cc/*24*/)!=('\42')) {
  1161. /*[IRF3.6wcp*/{T818* C1=C;
  1162. T0* b1=((T0*)ms157_818);
  1163. r818warning(r818current_position(C1),b1);
  1164. }/*]*/
  1165. }
  1166. else {
  1167. C->_ok=r818skip1(C,'\42');
  1168. }
  1169. /*FI*/R=r505to_external_routine(((T505*)(oBC818tmp_feature)),_l,r818a_alias(C));
  1170. return R;
  1171. }
  1172. /*No:EIFFEL_PARSER.show_nb_errors*/
  1173. int r818a_class_type(T818* C){
  1174. int R=0;
  1175. T0* _generic_list=NULL;
  1176. T0* _base_class_name=NULL;
  1177. int _state=0;
  1178. /*IF*/if (r818a_base_type(C)) {
  1179. C->_last_class_type=(((T818*)C))->_last_base_type/*69*/;
  1180. R=1;
  1181. }
  1182.  else if (r818a_base_class_name(C)) {
  1183. R=1;
  1184. _base_class_name=(((T818*)C))->_last_class_name/*89*/;
  1185. while (!((_state)>(2))) {
  1186. {int z1=_state;
  1187.  
  1188. if((0==z1)){
  1189. /*IF*/if (r818skip1(C,'\133')) {
  1190. _state=1;
  1191. }
  1192. else {
  1193. {T657*n=malloc(sizeof(*n));
  1194. *n=M657;
  1195. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_base_class_name);
  1196. /*]*/
  1197. C->_last_class_type=(T0*)n;
  1198. }
  1199. _state=3;
  1200. }
  1201. /*FI*/}
  1202.  else 
  1203. if((1==z1)){
  1204. /*IF*/if (r818a_type(C)) {
  1205. /*IF*/if ((_generic_list)==((void*)(NULL))) {
  1206. _generic_list=se_ma701(1,(((T818*)C))->_last_type/*157*/);
  1207. }
  1208. else {
  1209. r701add_last(((T701*)_generic_list),(((T818*)C))->_last_type/*157*/);
  1210. }
  1211. /*FI*/_state=2;
  1212. }
  1213.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  1214. /*[IRF3.6wcp*/{T818* C1=C;
  1215. T0* b1=((T0*)ms150_818);
  1216. r818warning(r818current_position(C1),b1);
  1217. }/*]*/
  1218. C->_ok=r818skip1(C,'\54');
  1219. }
  1220.  else if (((((T818*)C))->_cc/*24*/)==('\135')) {
  1221. _state=2;
  1222. }
  1223. else {
  1224. r818fcp(C,((T0*)ms156_818));
  1225. _state=2;
  1226. }
  1227. /*FI*/}
  1228.  else{/*IF*/if (r818skip1(C,'\54')) {
  1229. _state=1;
  1230. }
  1231.  else if (((((T818*)C))->_cc/*24*/)==('\135')) {
  1232. /*IF*/if ((_generic_list)==((void*)(NULL))) {
  1233. /*[IRF3.6wcp*/{T818* C1=C;
  1234. T0* b1=((T0*)ms54_818);
  1235. r818warning(r818current_position(C1),b1);
  1236. }/*]*/
  1237. {T657*n=malloc(sizeof(*n));
  1238. *n=M657;
  1239. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_base_class_name);
  1240. /*]*/
  1241. C->_last_class_type=(T0*)n;
  1242. }
  1243. }
  1244. else {
  1245. {T720*n=malloc(sizeof(*n));
  1246. *n=M720;
  1247. r720make(n,_base_class_name,_generic_list);
  1248. C->_last_class_type=(T0*)n;
  1249. }
  1250. }
  1251. /*FI*/C->_ok=r818skip1(C,'\135');
  1252. _state=3;
  1253. }
  1254.  else if (r818a_type(C)) {
  1255. /*IF*/if ((_generic_list)==((void*)(NULL))) {
  1256. _generic_list=se_ma701(1,(((T818*)C))->_last_type/*157*/);
  1257. }
  1258. else {
  1259. r701add_last(((T701*)_generic_list),(((T818*)C))->_last_type/*157*/);
  1260. }
  1261. /*FI*/r818warning(X291start_position((((T818*)C))->_last_type/*157*/),((T0*)ms143_818));
  1262. }
  1263. else {
  1264. r818fcp(C,((T0*)ms55_818));
  1265. _state=3;
  1266. }
  1267. /*FI*/}}
  1268. }
  1269. }
  1270. /*FI*/return R;
  1271. }
  1272. T0* r818analyse_class(T818* C,T0* a1){
  1273. T0* R=NULL;
  1274. T0* _path=NULL;
  1275. int _old_nbw=0;
  1276. int _old_nbe=0;
  1277. _path=(((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/;
  1278. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)) {
  1279. /*[IRF3.6append*/{T0* b1=((T0*)ms1_818);
  1280. r7append(((T7*)(oBC683explanation)),b1);
  1281. }/*]*/
  1282. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1283. }
  1284. /*FI*/r306put_integer(((T306*)(oBC364echo)),(/*(IRF4.9base_class_count*/(((T718*)((T718*)(oBC604base_class_dictionary))))->_count/*32*//*)*/)+(1));
  1285. r306put_character(((T306*)(oBC364echo)),'\11');
  1286. r306put_string(((T306*)(oBC364echo)),_path);
  1287. r306put_character(((T306*)(oBC364echo)),'\n');
  1288. _old_nbe=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  1289. _old_nbw=/*(IRF4.9nb_warnings*/(((T683*)((T683*)(oBC364eh))))->_nb_warnings/*4*//*)*/;
  1290. C->_is_running=1;
  1291. C->_function_type=NULL;
  1292. C->_in_ensure=0;
  1293. C->_last_comments=NULL;
  1294. C->_ms_numbering=0;
  1295. C->_line=1;
  1296. C->_column=1;
  1297. C->_current_line=r676item((((T818*)C))->_line/*16*/);
  1298. /*IF*/if (((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)==(0)) {
  1299. C->_cc='\n';
  1300. }
  1301. else {
  1302. C->_cc=/*(IRF4.5first*//*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
  1303. }
  1304. /*FI*/{T605*n=malloc(sizeof(*n));
  1305. *n=M605;
  1306. r605make(n);
  1307. C->_last_base_class=(T0*)n;
  1308. }
  1309. r818skip_comments(C);
  1310. r818a_class_declaration(C);
  1311. C->_is_running=0;
  1312. /*[IRF3.3unset_is_ready*/((((T676*)(((T676*)(oBC364parser_buffer)))))->_path)=(NULL);
  1313. /*]*/
  1314. R=(((T818*)C))->_last_base_class/*65*/;
  1315. /*IF*/if (((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_old_nbe))>(0)) {
  1316. /*[IRF3.2show_nb_errors*/r818show_nb(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/,((T0*)ms10_818));
  1317. /*]*/
  1318. r306w_put_string(((T0*)ms4_818));
  1319. r306w_put_string(_path);
  1320. r306w_put_string(((T0*)ms5_818));
  1321. R=NULL;
  1322. }
  1323.  else if (((/*(IRF4.9nb_warnings*/(((T683*)((T683*)(oBC364eh))))->_nb_warnings/*4*//*)*/)-(_old_nbw))>(0)) {
  1324. /*[IRF3.2show_nb_warnings*/r818show_nb(/*(IRF4.9nb_warnings*/(((T683*)((T683*)(oBC364eh))))->_nb_warnings/*4*//*)*/,((T0*)ms9_818));
  1325. /*]*/
  1326. }
  1327. /*FI*//*IF*/if ((R)!=((void*)(NULL))) {
  1328. r604add_class(((T604*)(oBC364small_eiffel)),R);
  1329. /*IF*/if (((a1)!=((void*)(NULL)))&&(((((T451*)((T451*)a1)))->_to_string/*0*/)!=((void*)((((T451*)((T451*)((((T605*)((T605*)R)))->_base_class_name/*24*/))))->_to_string/*0*/)))) {
  1330. r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/);
  1331. /*[IRF3.6append*/{T0* b1=((T0*)ms135_470);
  1332. r7append(((T7*)(oBC683explanation)),b1);
  1333. }/*]*/
  1334. /*[IRF3.6append*/{T0* b1=_path;
  1335. r7append(((T7*)(oBC683explanation)),b1);
  1336. }/*]*/
  1337. /*[IRF3.6append*/{T0* b1=((T0*)ms6_818);
  1338. r7append(((T7*)(oBC683explanation)),b1);
  1339. }/*]*/
  1340. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)a1)))->_to_string/*0*/;
  1341. r7append(((T7*)(oBC683explanation)),b1);
  1342. }/*]*/
  1343. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
  1344. r683fatal_error(((T683*)(oBC364eh)),b1);
  1345. }/*]*/
  1346. }
  1347. /*FI*/r605get_started(((T605*)R));
  1348. }
  1349. /*FI*/return R;
  1350. }
  1351. T0*oBC818tmp_feature=NULL;
  1352. T0* r818parse_c_name(T818* C){
  1353. T0* R=NULL;
  1354. {T7*n=malloc(sizeof(*n));
  1355. *n=M7;
  1356. r7make(n,32);
  1357. R=(T0*)n;
  1358. }
  1359. while (!(r3is_separator((((T818*)C))->_cc/*24*/))) {
  1360. r7extend(((T7*)R),(((T818*)C))->_cc/*24*/);
  1361. r818next_char(C);
  1362. }
  1363. r818skip_comments(C);
  1364. return R;
  1365. }
  1366. void r818disconnect(T818* C){
  1367. C->_is_running=0;
  1368. /*[IRF3.3unset_is_ready*/((((T676*)(((T676*)(oBC364parser_buffer)))))->_path)=(NULL);
  1369. /*]*/
  1370. }
  1371. int r818a_character_constant(T818* C){
  1372. int R=0;
  1373. char _value=0;
  1374. int _printing_mode=0;
  1375. int _state=0;
  1376. T0* _sp=NULL;
  1377. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\47')) {
  1378. {T627*n=malloc(sizeof(*n));
  1379. *n=M627;
  1380. r627make(n,(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  1381. _sp=(T0*)n;
  1382. }
  1383. R=1;
  1384. while (!((_state)>(2))) {
  1385. r818next_char(C);
  1386. {int z1=_state;
  1387.  
  1388. if((0==z1)){
  1389. {int z2=(((T818*)C))->_cc/*24*/;
  1390.  
  1391. if((37==z2)){
  1392. _state=1;
  1393. }
  1394.  else 
  1395. if((39==z2)){
  1396. r818fcp(C,((T0*)ms148_818));
  1397. _state=2;
  1398. }
  1399.  else{_value=(((T818*)C))->_cc/*24*/;
  1400. _printing_mode=0;
  1401. _state=2;
  1402. }}
  1403. }
  1404.  else 
  1405. if((1==z1)){
  1406. _printing_mode=1;
  1407. _state=2;
  1408. {int z2=(((T818*)C))->_cc/*24*/;
  1409.  
  1410. if((65==z2)){
  1411. _value='\100';
  1412. }
  1413.  else 
  1414. if((66==z2)){
  1415. _value='\10';
  1416. }
  1417.  else 
  1418. if((67==z2)){
  1419. _value='\136';
  1420. }
  1421.  else 
  1422. if((68==z2)){
  1423. _value='\44';
  1424. }
  1425.  else 
  1426. if((70==z2)){
  1427. _value='\14';
  1428. }
  1429.  else 
  1430. if((72==z2)){
  1431. _value='\134';
  1432. }
  1433.  else 
  1434. if((76==z2)){
  1435. _value='\176';
  1436. }
  1437.  else 
  1438. if((78==z2)){
  1439. _value='\n';
  1440. }
  1441.  else 
  1442. if((81==z2)){
  1443. _value='\140';
  1444. }
  1445.  else 
  1446. if((82==z2)){
  1447. _value='\15';
  1448. }
  1449.  else 
  1450. if((83==z2)){
  1451. _value='\43';
  1452. }
  1453.  else 
  1454. if((84==z2)){
  1455. _value='\11';
  1456. }
  1457.  else 
  1458. if((85==z2)){
  1459. _value='\0';
  1460. }
  1461.  else 
  1462. if((86==z2)){
  1463. _value='\174';
  1464. }
  1465.  else 
  1466. if((37==z2)){
  1467. _value='\45';
  1468. }
  1469.  else 
  1470. if((39==z2)){
  1471. _value='\47';
  1472. }
  1473.  else 
  1474. if((34==z2)){
  1475. _value='\42';
  1476. }
  1477.  else 
  1478. if((40==z2)){
  1479. _value='\133';
  1480. }
  1481.  else 
  1482. if((41==z2)){
  1483. _value='\135';
  1484. }
  1485.  else 
  1486. if((60==z2)){
  1487. _value='\173';
  1488. }
  1489.  else 
  1490. if((62==z2)){
  1491. _value='\175';
  1492. }
  1493.  else 
  1494. if((47==z2)){
  1495. r818a_ascii_code(C);
  1496. _value=((char)((((T818*)C))->_last_ascii_code/*61*/));
  1497. _printing_mode=2;
  1498. }
  1499.  else{r818fcp(C,((T0*)ms24_818));
  1500. }}
  1501. }
  1502.  else{_state=3;
  1503. {int z2=(((T818*)C))->_cc/*24*/;
  1504.  
  1505. if((39==z2)){
  1506. }
  1507.  else{r818fcp(C,((T0*)ms148_818));
  1508. }}
  1509. r818next_char(C);
  1510. r818skip_comments(C);
  1511. }}
  1512. }
  1513. {T260*n=malloc(sizeof(*n));
  1514. *n=M260;
  1515. r260make(n,_sp,_value,_printing_mode);
  1516. C->_last_character_constant=(T0*)n;
  1517. }
  1518. }
  1519. /*FI*/return R;
  1520. }
  1521. int r818a_check(T818* C){
  1522. int R=0;
  1523. T0* _al=NULL;
  1524. T0* _hc=NULL;
  1525. T0* _sp=NULL;
  1526. /*IF*/if (r818a_keyword(C,((T0*)ms4_470))) {
  1527. R=1;
  1528. {T627*n=malloc(sizeof(*n));
  1529. *n=M627;
  1530. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1531. _sp=(T0*)n;
  1532. }
  1533. _hc=r818get_comments(C);
  1534. _al=r818a_assertion(C);
  1535. /*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) {
  1536. {T292*n=malloc(sizeof(*n));
  1537. *n=M292;
  1538. r292make(n,_sp,_hc,_al);
  1539. C->_last_instruction=(T0*)n;
  1540. }
  1541. }
  1542. else {
  1543. /*[IRF3.6wcp*/{T818* C1=C;
  1544. T0* b1=((T0*)ms48_818);
  1545. r818warning(r818current_position(C1),b1);
  1546. }/*]*/
  1547. }
  1548. /*FI*//*IF*/if (!(r818a_keyword(C,((T0*)ms12_470)))) {
  1549. r818fcp(C,((T0*)ms49_818));
  1550. }
  1551. /*FI*/}
  1552. /*FI*/return R;
  1553. }
  1554. /*No:EIFFEL_PARSER.go_back*/
  1555. /*No:EIFFEL_PARSER.current_class*/
  1556. /*No:EIFFEL_PARSER.fz_export*/
  1557. /*No:EIFFEL_PARSER.fz_invariant*/
  1558. /*No:EIFFEL_PARSER.us_or_else*/
  1559. /*No:EIFFEL_PARSER.is_running*/
  1560. int r818a_result(T818* C){
  1561. int R=0;
  1562. /*IF*/if (r511is_result()) {
  1563. /*IF*/if (((((T818*)C))->_function_type/*29*/)==((void*)(NULL))) {
  1564. r818error(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms152_818));
  1565. }
  1566. /*FI*/C->_last_expression=r511to_e_result(((T511*)(oBC818tmp_name)));
  1567. R=1;
  1568. }
  1569. /*FI*/return R;
  1570. }
  1571. int r818a_manifest_string(T818* C){
  1572. int R=0;
  1573. int _state=0;
  1574. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) {
  1575. R=1;
  1576. C->_ms_numbering=((((T818*)C))->_ms_numbering/*57*/)+(1);
  1577. {T805*n=malloc(sizeof(*n));
  1578. *n=M805;
  1579. r805make(n,r818pos((((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/),(((T818*)C))->_ms_numbering/*57*/);
  1580. C->_last_manifest_string=(T0*)n;
  1581. }
  1582. while (!((_state)>(3))) {
  1583. r818next_char(C);
  1584. {int z1=_state;
  1585.  
  1586. if((0==z1)){
  1587. {int z2=(((T818*)C))->_cc/*24*/;
  1588.  
  1589. if((10==z2)){
  1590. r818fcp(C,((T0*)ms146_818));
  1591. }
  1592.  else 
  1593. if((34==z2)){
  1594. _state=4;
  1595. }
  1596.  else 
  1597. if((37==z2)){
  1598. _state=1;
  1599. }
  1600.  else{/*[IRF3.5add*/r7extend(((T7*)((((T805*)((T805*)((((T818*)C))->_last_manifest_string/*145*/))))->_to_string/*16*/)),(((T818*)C))->_cc/*24*/);
  1601. /*]*/
  1602. }}
  1603. }
  1604.  else 
  1605. if((1==z1)){
  1606. _state=0;
  1607. {int z2=(((T818*)C))->_cc/*24*/;
  1608.  
  1609. if((10==z2)){
  1610. _state=3;
  1611. }
  1612.  else 
  1613. if((65==z2)){
  1614. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\100');
  1615. }
  1616.  else 
  1617. if((66==z2)){
  1618. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\10');
  1619. }
  1620.  else 
  1621. if((67==z2)){
  1622. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\136');
  1623. }
  1624.  else 
  1625. if((68==z2)){
  1626. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\44');
  1627. }
  1628.  else 
  1629. if((70==z2)){
  1630. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\14');
  1631. }
  1632.  else 
  1633. if((72==z2)){
  1634. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\134');
  1635. }
  1636.  else 
  1637. if((76==z2)){
  1638. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\176');
  1639. }
  1640.  else 
  1641. if((78==z2)){
  1642. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\n');
  1643. }
  1644.  else 
  1645. if((81==z2)){
  1646. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\140');
  1647. }
  1648.  else 
  1649. if((82==z2)){
  1650. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\15');
  1651. }
  1652.  else 
  1653. if((83==z2)){
  1654. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\43');
  1655. }
  1656.  else 
  1657. if((84==z2)){
  1658. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\11');
  1659. }
  1660.  else 
  1661. if((85==z2)){
  1662. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\0');
  1663. }
  1664.  else 
  1665. if((86==z2)){
  1666. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\174');
  1667. }
  1668.  else 
  1669. if((37==z2)){
  1670. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\45');
  1671. }
  1672.  else 
  1673. if((39==z2)){
  1674. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\47');
  1675. }
  1676.  else 
  1677. if((34==z2)){
  1678. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\42');
  1679. }
  1680.  else 
  1681. if((40==z2)){
  1682. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\133');
  1683. }
  1684.  else 
  1685. if((41==z2)){
  1686. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\135');
  1687. }
  1688.  else 
  1689. if((60==z2)){
  1690. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\173');
  1691. }
  1692.  else 
  1693. if((62==z2)){
  1694. r805add_percent(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),'\175');
  1695. }
  1696.  else 
  1697. if((47==z2)){
  1698. r818a_ascii_code(C);
  1699. r805add_ascii(((T805*)((((T818*)C))->_last_manifest_string/*145*/)),((char)((((T818*)C))->_last_ascii_code/*61*/)));
  1700. }
  1701.  else 
  1702. if((9==z2)||(32==z2)){
  1703. _state=2;
  1704. }
  1705.  else{r818fcp(C,((T0*)ms26_818));
  1706. _state=0;
  1707. }}
  1708. }
  1709.  else 
  1710. if((2==z1)){
  1711. {int z2=(((T818*)C))->_cc/*24*/;
  1712.  
  1713. if((10==z2)){
  1714. _state=3;
  1715. }
  1716.  else 
  1717. if((9==z2)||(32==z2)){
  1718. }
  1719.  else{r818fcp(C,((T0*)ms27_818));
  1720. }}
  1721. }
  1722.  else{{int z2=(((T818*)C))->_cc/*24*/;
  1723.  
  1724. if((9==z2)||(32==z2)){
  1725. }
  1726.  else 
  1727. if((37==z2)){
  1728. r805break_line(((T805*)((((T818*)C))->_last_manifest_string/*145*/)));
  1729. _state=0;
  1730. }
  1731.  else 
  1732. if((10==z2)){
  1733. r818fcp(C,((T0*)ms146_818));
  1734. _state=0;
  1735. }
  1736.  else{r818fcp(C,((T0*)ms28_818));
  1737. _state=0;
  1738. }}
  1739. }}
  1740. }
  1741. r818next_char(C);
  1742. r818skip_comments(C);
  1743. }
  1744. /*FI*/return R;
  1745. }
  1746. void r818a_function_call(T818* C){
  1747. T0* _e_current=NULL;
  1748. T0* _sfn=NULL;
  1749. _sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  1750. {T358*n=malloc(sizeof(*n));
  1751. *n=M358;
  1752. r358make(n,(((T446*)((T446*)_sfn)))->_start_position/*20*/,0);
  1753. _e_current=(T0*)n;
  1754. }
  1755. r818a_r10(C,0,_e_current,_sfn,r818a_actuals(C));
  1756. }
  1757. /*No:EIFFEL_PARSER.fz_01*/
  1758. int r818a_real_constant(T818* C){
  1759. int R=0;
  1760. int _c=0;
  1761. int _l=0;
  1762. _l=(((T818*)C))->_line/*16*/;
  1763. _c=(((T818*)C))->_column/*12*/;
  1764. /*IF*/if (r818skip1(C,'\53')) {
  1765. /*IF*/if (r818a_real(C)) {
  1766. r627set_line_column(((T627*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_start_position/*12*/)),_l,_c);
  1767. R=1;
  1768. }
  1769. else {
  1770. r818go_back_at(C,_l,_c);
  1771. }
  1772. /*FI*/}
  1773.  else if (r818skip1(C,'\55')) {
  1774. /*IF*/if (r818a_real(C)) {
  1775. r627set_line_column(((T627*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_start_position/*12*/)),_l,_c);
  1776. /*[IRF3.5unary_minus*/r7add_first(((T7*)((((T936*)((T936*)((((T818*)C))->_last_real_constant/*153*/))))->_to_string/*16*/)),'\55');
  1777. /*]*/
  1778. R=1;
  1779. }
  1780. else {
  1781. r818go_back_at(C,_l,_c);
  1782. }
  1783. /*FI*/}
  1784.  else if (r818a_real(C)) {
  1785. R=1;
  1786. }
  1787. /*FI*/return R;
  1788. }
  1789. /*No:EIFFEL_PARSER.fz_inspect*/
  1790. void r818show_nb(int a1,T0* a2){
  1791. /*IF*/if ((a1)>(0)) {
  1792. r306w_put_string(((T0*)ms75_470));
  1793. r306w_put_integer(a1);
  1794. r306w_put_string(a2);
  1795. }
  1796. /*FI*/}
  1797. /*No:EIFFEL_PARSER.fz_c_withcurrent*/
  1798. /*No:EIFFEL_PARSER.fz_03*/
  1799. /*No:EIFFEL_PARSER.fz_rename*/
  1800. T0* r818parse_feature_name(T818* C){
  1801. T0* R=NULL;
  1802. /*IF*/if (r818a_feature_name(C)) {
  1803. R=(((T818*)C))->_last_feature_name/*109*/;
  1804. }
  1805. else {
  1806. r818fcp(C,((T0*)ms140_818));
  1807. }
  1808. /*FI*/return R;
  1809. }
  1810. T0* r818connect_to_cecil(T818* C){
  1811. T0* R=NULL;
  1812. T0* _path=NULL;
  1813. _path=(((T590*)((T590*)(oBC364run_control))))->_cecil_path/*12*/;
  1814. r306put_string(((T306*)(oBC364echo)),((T0*)ms7_818));
  1815. r306put_string(((T306*)(oBC364echo)),_path);
  1816. r306put_character(((T306*)(oBC364echo)),'\n');
  1817. r676load_file(((T676*)(oBC364parser_buffer)),_path);
  1818. /*IF*/if (!(/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/)) {
  1819. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_818);
  1820. r683fatal_error(((T683*)(oBC364eh)),b1);
  1821. }/*]*/
  1822. }
  1823. /*FI*/C->_is_running=1;
  1824. C->_formal_generic_list=NULL;
  1825. C->_function_type=NULL;
  1826. C->_in_ensure=0;
  1827. C->_last_comments=NULL;
  1828. C->_line=1;
  1829. C->_column=1;
  1830. C->_current_line=r676item((((T818*)C))->_line/*16*/);
  1831. /*IF*/if (((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)==(0)) {
  1832. C->_cc='\n';
  1833. }
  1834. else {
  1835. C->_cc=/*(IRF4.5first*//*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
  1836. }
  1837. /*FI*/r818skip_comments(C);
  1838. {T7*n=malloc(sizeof(*n));
  1839. *n=M7;
  1840. r7make(n,32);
  1841. R=(T0*)n;
  1842. }
  1843. while (!(((((T818*)C))->_cc/*24*/)==('\n'))) {
  1844. r7extend(((T7*)R),(((T818*)C))->_cc/*24*/);
  1845. r818next_char(C);
  1846. }
  1847. r818skip_comments(C);
  1848. return R;
  1849. }
  1850. int r818a_identifier1(T818* C){
  1851. int R=0;
  1852. int _state=0;
  1853. /*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
  1854. r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  1855. /*[IRF3.6extend*/{char b1=r3to_lower((((T818*)C))->_cc/*24*/);
  1856. r7extend(((T7*)(oBC511tmp_string)),b1);
  1857. }/*]*/
  1858. while (!((_state)>(0))) {
  1859. r818next_char(C);
  1860. {int z1=(((T818*)C))->_cc/*24*/;
  1861.  
  1862. if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
  1863. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  1864. r7extend(((T7*)(oBC511tmp_string)),b1);
  1865. }/*]*/
  1866. }
  1867.  else 
  1868. if(((65<=z1)&&(z1<=90))){
  1869. /*[IRF3.6extend*/{char b1=r3to_lower((((T818*)C))->_cc/*24*/);
  1870. r7extend(((T7*)(oBC511tmp_string)),b1);
  1871. }/*]*/
  1872. }
  1873.  else{_state=1;
  1874. }}
  1875. }
  1876. /*IF*/if (r511isa_keyword()) {
  1877. _state=/*(IRF4.9count*/(((T7*)((T7*)(oBC511tmp_string))))->_count/*4*//*)*/;
  1878. while (!((_state)==(0))) {
  1879. _state=(_state)-(1);
  1880. r818prev_char(C);
  1881. }
  1882. }
  1883. else {
  1884. R=1;
  1885. r818skip_comments(C);
  1886. }
  1887. /*FI*/}
  1888. /*FI*/return R;
  1889. }
  1890. /*No:EIFFEL_PARSER.fz_once*/
  1891. /*No:EIFFEL_PARSER.ecp*/
  1892. void r818fcp(T818* C,T0* a1){
  1893. r683add_position(r818current_position(C));
  1894. /*[IRF3.6fatal_error*/{T0* b1=a1;
  1895. r683fatal_error(((T683*)(oBC364eh)),b1);
  1896. }/*]*/
  1897. }
  1898. int r818a_conditional(T818* C){
  1899. int R=0;
  1900. T0* _ifthenelse=NULL;
  1901. /*IF*/if (r818a_keyword(C,((T0*)ms21_470))) {
  1902. R=1;
  1903. {T530*n=malloc(sizeof(*n));
  1904. *n=M530;
  1905. /*[IRF3.3make*/((((T530*)(n)))->_start_position)=(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  1906. /*]*/
  1907. _ifthenelse=(T0*)n;
  1908. }
  1909. r818a_then_part_list(C,_ifthenelse);
  1910. /*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
  1911. /*[IRF3.3set_else_compound*/((((T530*)(((T530*)_ifthenelse))))->_else_compound)=(r818a_compound2(C,((T0*)ms60_818),((T0*)ms12_470)));
  1912. /*]*/
  1913. }
  1914. else {
  1915. /*IF*/if (!(r818a_keyword(C,((T0*)ms12_470)))) {
  1916. /*[IRF3.6wcp*/{T818* C1=C;
  1917. T0* b1=((T0*)ms61_818);
  1918. r818warning(r818current_position(C1),b1);
  1919. }/*]*/
  1920. }
  1921. /*FI*/}
  1922. /*FI*/C->_last_instruction=_ifthenelse;
  1923. }
  1924. /*FI*/return R;
  1925. }
  1926. /*No:EIFFEL_PARSER.us_real*/
  1927. void r818a_procedure_call(T818* C){
  1928. T0* _e_current=NULL;
  1929. T0* _sfn=NULL;
  1930. _sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  1931. {T358*n=malloc(sizeof(*n));
  1932. *n=M358;
  1933. r358make(n,(((T446*)((T446*)_sfn)))->_start_position/*20*/,0);
  1934. _e_current=(T0*)n;
  1935. }
  1936. r818a_r10(C,1,_e_current,_sfn,r818a_actuals(C));
  1937. }
  1938. /*No:EIFFEL_PARSER.us_implies*/
  1939. T0*oBC818tmp_string=NULL;
  1940. int r818a_integer(T818* C){
  1941. int R=0;
  1942. int _value=0;
  1943. int _state=0;
  1944. /*IF*/if (r3is_digit((((T818*)C))->_cc/*24*/)) {
  1945. R=1;
  1946. C->_start_line=(((T818*)C))->_line/*16*/;
  1947. C->_start_column=(((T818*)C))->_column/*12*/;
  1948. _value=r3value((((T818*)C))->_cc/*24*/);
  1949. while (!((_state)>(7))) {
  1950. r818next_char(C);
  1951. {int z1=_state;
  1952.  
  1953. if((0==z1)){
  1954. {int z2=(((T818*)C))->_cc/*24*/;
  1955.  
  1956. if(((48<=z2)&&(z2<=57))){
  1957. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  1958. _state=1;
  1959. }
  1960.  else 
  1961. if((95==z2)){
  1962. _state=4;
  1963. }
  1964.  else{_state=8;
  1965. }}
  1966. }
  1967.  else 
  1968. if((1==z1)){
  1969. {int z2=(((T818*)C))->_cc/*24*/;
  1970.  
  1971. if(((48<=z2)&&(z2<=57))){
  1972. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  1973. _state=2;
  1974. }
  1975.  else 
  1976. if((95==z2)){
  1977. _state=4;
  1978. }
  1979.  else{_state=8;
  1980. }}
  1981. }
  1982.  else 
  1983. if((2==z1)){
  1984. {int z2=(((T818*)C))->_cc/*24*/;
  1985.  
  1986. if(((48<=z2)&&(z2<=57))){
  1987. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  1988. _state=3;
  1989. }
  1990.  else 
  1991. if((95==z2)){
  1992. _state=4;
  1993. }
  1994.  else{_state=8;
  1995. }}
  1996. }
  1997.  else 
  1998. if((3==z1)){
  1999. {int z2=(((T818*)C))->_cc/*24*/;
  2000.  
  2001. if(((48<=z2)&&(z2<=57))){
  2002. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  2003. }
  2004.  else 
  2005. if((95==z2)){
  2006. r818fcp(C,((T0*)ms147_818));
  2007. }
  2008.  else{_state=8;
  2009. }}
  2010. }
  2011.  else 
  2012. if((4==z1)){
  2013. {int z2=(((T818*)C))->_cc/*24*/;
  2014.  
  2015. if(((48<=z2)&&(z2<=57))){
  2016. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  2017. _state=5;
  2018. }
  2019.  else{r818fcp(C,((T0*)ms147_818));
  2020. }}
  2021. }
  2022.  else 
  2023. if((5==z1)){
  2024. {int z2=(((T818*)C))->_cc/*24*/;
  2025.  
  2026. if(((48<=z2)&&(z2<=57))){
  2027. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  2028. _state=6;
  2029. }
  2030.  else{r818fcp(C,((T0*)ms147_818));
  2031. }}
  2032. }
  2033.  else 
  2034. if((6==z1)){
  2035. {int z2=(((T818*)C))->_cc/*24*/;
  2036.  
  2037. if(((48<=z2)&&(z2<=57))){
  2038. _value=((_value)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  2039. _state=7;
  2040. }
  2041.  else{r818fcp(C,((T0*)ms147_818));
  2042. }}
  2043. }
  2044.  else {{int z2=(((T818*)C))->_cc/*24*/;
  2045.  
  2046. if(((48<=z2)&&(z2<=57))){
  2047. r818fcp(C,((T0*)ms147_818));
  2048. }
  2049.  else 
  2050. if((95==z2)){
  2051. _state=4;
  2052. }
  2053.  else{_state=8;
  2054. }}
  2055. }}
  2056. }
  2057. /*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
  2058. r818fcp(C,((T0*)ms158_818));
  2059. }
  2060. /*FI*/r818skip_comments(C);
  2061. {T342*n=malloc(sizeof(*n));
  2062. *n=M342;
  2063. r342make(n,_value,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  2064. C->_last_integer_constant=(T0*)n;
  2065. }
  2066. }
  2067. /*FI*/return R;
  2068. }
  2069. /*No:EIFFEL_PARSER.last_binary*/
  2070. int r818a_identifier2(T818* C){
  2071. int R=0;
  2072. int _do_warning=0;
  2073. int _state=0;
  2074. /*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
  2075. r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  2076. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  2077. r7extend(((T7*)(oBC511tmp_string)),b1);
  2078. }/*]*/
  2079. while (!((_state)>(0))) {
  2080. r818next_char(C);
  2081. {int z1=(((T818*)C))->_cc/*24*/;
  2082.  
  2083. if(((48<=z1)&&(z1<=57))||(95==z1)||((97<=z1)&&(z1<=122))){
  2084. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  2085. r7extend(((T7*)(oBC511tmp_string)),b1);
  2086. }/*]*/
  2087. }
  2088.  else 
  2089. if(((65<=z1)&&(z1<=90))){
  2090. _do_warning=1;
  2091. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  2092. r7extend(((T7*)(oBC511tmp_string)),b1);
  2093. }/*]*/
  2094. }
  2095.  else{_state=1;
  2096. }}
  2097. }
  2098. /*IF*/if (r511isa_keyword()) {
  2099. _state=/*(IRF4.9count*/(((T7*)((T7*)(oBC511tmp_string))))->_count/*4*//*)*/;
  2100. while (!((_state)==(0))) {
  2101. _state=(_state)-(1);
  2102. r818prev_char(C);
  2103. }
  2104. }
  2105. else {
  2106. R=1;
  2107. r818skip_comments(C);
  2108. /*IF*/if (_do_warning) {
  2109. r818warning(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms159_818));
  2110. }
  2111. /*FI*/}
  2112. /*FI*/}
  2113. /*FI*/return R;
  2114. }
  2115. /*No:EIFFEL_PARSER.us_minus*/
  2116. /*No:EIFFEL_PARSER.fz_elseif*/
  2117. T0*oBC818lcs=NULL;
  2118. /*No:EIFFEL_PARSER.end_of_text*/
  2119. void r818prev_char(T818* C){
  2120. /*IF*/if (((((T818*)C))->_column/*12*/)>(1)) {
  2121. C->_column=((((T818*)C))->_column/*12*/)-(1);
  2122. C->_cc=/*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[((((T818*)C))->_column/*12*/)-(1)]/*)*/;
  2123. }
  2124. else {
  2125. /*IF*/if (((((T818*)C))->_line/*16*/)>(1)) {
  2126. C->_line=((((T818*)C))->_line/*16*/)-(1);
  2127. C->_current_line=r676item((((T818*)C))->_line/*16*/);
  2128. C->_column=((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)+(1);
  2129. C->_cc='\n';
  2130. }
  2131. else {
  2132. C->_column=0;
  2133. C->_cc='\0';
  2134. }
  2135. /*FI*/}
  2136. /*FI*/}
  2137. void r818a_indexing(T818* C){
  2138. /*IF*/if (r818a_keyword(C,((T0*)ms22_470))) {
  2139. r818a_index_list(C);
  2140. }
  2141. /*FI*/}
  2142. void r818next_char(T818* C){
  2143. /*IF*/if (((((T818*)C))->_column/*12*/)<((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)) {
  2144. C->_column=((((T818*)C))->_column/*12*/)+(1);
  2145. C->_cc=/*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[((((T818*)C))->_column/*12*/)-(1)]/*)*/;
  2146. }
  2147.  else if (((((T818*)C))->_column/*12*/)==((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)) {
  2148. C->_column=((((T818*)C))->_column/*12*/)+(1);
  2149. C->_cc='\n';
  2150. }
  2151.  else if (((((T818*)C))->_line/*16*/)==((((T676*)((T676*)(oBC364parser_buffer))))->_count/*4*/)) {
  2152. C->_cc='\0';
  2153. }
  2154. else {
  2155. C->_column=1;
  2156. C->_line=((((T818*)C))->_line/*16*/)+(1);
  2157. C->_current_line=r676item((((T818*)C))->_line/*16*/);
  2158. /*IF*/if (((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)==(0)) {
  2159. C->_cc='\n';
  2160. }
  2161. else {
  2162. C->_cc=/*(IRF4.5first*//*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[(1)-(1)]/*)*//*)*/;
  2163. }
  2164. /*FI*/}
  2165. /*FI*/}
  2166. /*No:EIFFEL_PARSER.fz_redefine*/
  2167. T0* r818pos(int a1,int a2){
  2168. T0* R=NULL;
  2169. {T627*n=malloc(sizeof(*n));
  2170. *n=M627;
  2171. r627make(n,a1,a2);
  2172. R=(T0*)n;
  2173. }
  2174. return R;
  2175. }
  2176. /*No:EIFFEL_PARSER.fz_variant*/
  2177. /*No:EIFFEL_PARSER.wcp*/
  2178. int r818a_base_class_name(T818* C){
  2179. int R=0;
  2180. int _do_warning=0;
  2181. int _state=0;
  2182. /*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
  2183. /*IF*/if ((((unsigned)((((T818*)C))->_cc/*24*/))>=((unsigned)('a')))) {
  2184. _do_warning=1;
  2185. C->_cc=r3to_upper((((T818*)C))->_cc/*24*/);
  2186. }
  2187. /*FI*/r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  2188. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  2189. r7extend(((T7*)(oBC511tmp_string)),b1);
  2190. }/*]*/
  2191. while (!((_state)>(0))) {
  2192. r818next_char(C);
  2193. {int z1=(((T818*)C))->_cc/*24*/;
  2194.  
  2195. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
  2196. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  2197. r7extend(((T7*)(oBC511tmp_string)),b1);
  2198. }/*]*/
  2199. }
  2200.  else 
  2201. if(((97<=z1)&&(z1<=122))){
  2202. _do_warning=1;
  2203. /*[IRF3.6extend*/{char b1=r3to_upper((((T818*)C))->_cc/*24*/);
  2204. r7extend(((T7*)(oBC511tmp_string)),b1);
  2205. }/*]*/
  2206. }
  2207.  else{_state=1;
  2208. }}
  2209. }
  2210. /*IF*/if (r511isa_keyword()) {
  2211. _state=/*(IRF4.9count*/(((T7*)((T7*)(oBC511tmp_string))))->_count/*4*//*)*/;
  2212. while (!((_state)==(0))) {
  2213. _state=(_state)-(1);
  2214. r818prev_char(C);
  2215. }
  2216. }
  2217. else {
  2218. R=1;
  2219. r818skip_comments(C);
  2220. /*IF*/if (_do_warning) {
  2221. r818warning(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms153_818));
  2222. }
  2223. /*FI*/C->_last_class_name=r511to_class_name(((T511*)(oBC818tmp_name)));
  2224. }
  2225. /*FI*/}
  2226. /*FI*/return R;
  2227. }
  2228. void r818a_formal_generic_list(T818* C){
  2229. int _state=0;
  2230. T0* _list=NULL;
  2231. T0* _fga=NULL;
  2232. T0* _constraint=NULL;
  2233. T0* _name=NULL;
  2234. T0* _sp=NULL;
  2235. C->_formal_generic_list=NULL;
  2236. while (!((_state)>(4))) {
  2237. {int z1=_state;
  2238.  
  2239. if((0==z1)){
  2240. /*IF*/if (r818skip1(C,'\133')) {
  2241. {T627*n=malloc(sizeof(*n));
  2242. *n=M627;
  2243. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2244. _sp=(T0*)n;
  2245. }
  2246. _state=1;
  2247. }
  2248. else {
  2249. _state=5;
  2250. }
  2251. /*FI*/}
  2252.  else 
  2253. if((1==z1)){
  2254. /*IF*/if (r818a_base_class_name(C)) {
  2255. _name=(((T818*)C))->_last_class_name/*89*/;
  2256. _state=2;
  2257. }
  2258. else {
  2259. _state=6;
  2260. }
  2261. /*FI*/}
  2262.  else 
  2263. if((2==z1)){
  2264. /*IF*/if (r818skip2(C,'\55','\76')) {
  2265. _state=4;
  2266. }
  2267.  else if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\135'))) {
  2268. {T59*n=malloc(sizeof(*n));
  2269. *n=M59;
  2270. r59make(n,_name,_constraint);
  2271. _fga=(T0*)n;
  2272. }
  2273. _name=NULL;
  2274. _constraint=NULL;
  2275. /*IF*/if ((_list)==((void*)(NULL))) {
  2276. _list=se_ma681(1,_fga);
  2277. }
  2278. else {
  2279. r681add_last(((T681*)_list),_fga);
  2280. }
  2281. /*FI*/_fga=NULL;
  2282. /*IF*/if (r818skip1(C,'\54')) {
  2283. _state=1;
  2284. }
  2285. else {
  2286. C->_ok=r818skip1(C,'\135');
  2287. _state=5;
  2288. }
  2289. /*FI*/}
  2290. else {
  2291. _state=6;
  2292. }
  2293. /*FI*/}
  2294.  else 
  2295. if((3==z1)){
  2296. /*IF*/if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\135'))) {
  2297. {T59*n=malloc(sizeof(*n));
  2298. *n=M59;
  2299. r59make(n,_name,_constraint);
  2300. _fga=(T0*)n;
  2301. }
  2302. _name=NULL;
  2303. _constraint=NULL;
  2304. /*IF*/if ((_list)==((void*)(NULL))) {
  2305. _list=se_ma681(1,_fga);
  2306. }
  2307. else {
  2308. r681add_last(((T681*)_list),_fga);
  2309. }
  2310. /*FI*/_fga=NULL;
  2311. /*IF*/if (r818skip1(C,'\54')) {
  2312. _state=1;
  2313. }
  2314. else {
  2315. C->_ok=r818skip1(C,'\135');
  2316. _state=5;
  2317. }
  2318. /*FI*/}
  2319. else {
  2320. _state=6;
  2321. }
  2322. /*FI*/}
  2323.  else{/*IF*/if (r818a_class_type(C)) {
  2324. _constraint=(((T818*)C))->_last_class_type/*93*/;
  2325. _state=3;
  2326. }
  2327. else {
  2328. r818fcp(C,((T0*)ms94_818));
  2329. _state=6;
  2330. }
  2331. /*FI*/}}
  2332. }
  2333. /*IF*/if ((_state)==(6)) {
  2334. }
  2335.  else if (((_sp)!=((void*)(NULL)))&&((_list)==((void*)(NULL)))) {
  2336. r818warning(_sp,((T0*)ms95_818));
  2337. }
  2338.  else if ((_sp)!=((void*)(NULL))) {
  2339. {T881*n=malloc(sizeof(*n));
  2340. *n=M881;
  2341. r881make(n,_sp,_list);
  2342. C->_formal_generic_list=(T0*)n;
  2343. }
  2344. /*[IRF3.3set_formal_generic_list*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_formal_generic_list)=((((T818*)C))->_formal_generic_list/*33*/);
  2345. /*]*/
  2346. }
  2347. /*FI*/}
  2348. int r818a_void(T818* C){
  2349. int R=0;
  2350. /*IF*/if (r511is_void()) {
  2351. C->_last_expression=r511to_e_void(((T511*)(oBC818tmp_name)));
  2352. R=1;
  2353. }
  2354. /*FI*/return R;
  2355. }
  2356. /*No:EIFFEL_PARSER.fz_like*/
  2357. T0* r818a_assertion(T818* C){
  2358. T0* R=NULL;
  2359. int _state=0;
  2360. T0* _assertion=NULL;
  2361. T0* _expression=NULL;
  2362. T0* _tag=NULL;
  2363. while (!((_state)>(3))) {
  2364. {int z1=_state;
  2365.  
  2366. if((0==z1)){
  2367. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
  2368. /*[IRF3.6wcp*/{T818* C1=C;
  2369. T0* b1=((T0*)ms68_470);
  2370. r818warning(r818current_position(C1),b1);
  2371. }/*]*/
  2372. C->_ok=r818skip1(C,'\73');
  2373. /*IF*/if (((((T818*)C))->_last_comments/*25*/)!=((void*)(NULL))) {
  2374. {T348*n=malloc(sizeof(*n));
  2375. *n=M348;
  2376. r348make(n,NULL,NULL,r818get_comments(C));
  2377. _assertion=(T0*)n;
  2378. }
  2379. /*IF*/if ((R)==((void*)(NULL))) {
  2380. R=se_ma608(1,_assertion);
  2381. }
  2382. else {
  2383. r608add_last(((T608*)R),_assertion);
  2384. }
  2385. /*FI*/}
  2386. /*FI*/}
  2387.  else if (r818a_tag_mark(C)) {
  2388. _tag=(((T818*)C))->_last_tag_mark/*161*/;
  2389. _state=1;
  2390. }
  2391.  else if (r818a_expression(C)) {
  2392. _expression=(((T818*)C))->_last_expression/*97*/;
  2393. _state=2;
  2394. }
  2395. else {
  2396. _state=4;
  2397. }
  2398. /*FI*/}
  2399.  else 
  2400. if((1==z1)){
  2401. /*IF*/if (r818skip1(C,'\73')) {
  2402. {T348*n=malloc(sizeof(*n));
  2403. *n=M348;
  2404. r348make(n,_tag,NULL,r818get_comments(C));
  2405. _assertion=(T0*)n;
  2406. }
  2407. /*IF*/if ((R)==((void*)(NULL))) {
  2408. R=se_ma608(1,_assertion);
  2409. }
  2410. else {
  2411. r608add_last(((T608*)R),_assertion);
  2412. }
  2413. /*FI*/_state=0;
  2414. }
  2415.  else if (r818a_tag_mark(C)) {
  2416. {T348*n=malloc(sizeof(*n));
  2417. *n=M348;
  2418. r348make(n,_tag,NULL,r818get_comments(C));
  2419. _assertion=(T0*)n;
  2420. }
  2421. /*IF*/if ((R)==((void*)(NULL))) {
  2422. R=se_ma608(1,_assertion);
  2423. }
  2424. else {
  2425. r608add_last(((T608*)R),_assertion);
  2426. }
  2427. /*FI*/_tag=(((T818*)C))->_last_tag_mark/*161*/;
  2428. }
  2429.  else if (r818a_expression(C)) {
  2430. _expression=(((T818*)C))->_last_expression/*97*/;
  2431. _state=3;
  2432. }
  2433. else {
  2434. {T348*n=malloc(sizeof(*n));
  2435. *n=M348;
  2436. r348make(n,_tag,NULL,r818get_comments(C));
  2437. _assertion=(T0*)n;
  2438. }
  2439. /*IF*/if ((R)==((void*)(NULL))) {
  2440. R=se_ma608(1,_assertion);
  2441. }
  2442. else {
  2443. r608add_last(((T608*)R),_assertion);
  2444. }
  2445. /*FI*/_state=4;
  2446. }
  2447. /*FI*/}
  2448.  else 
  2449. if((2==z1)){
  2450. /*IF*/if (r818skip1(C,'\73')) {
  2451. {T348*n=malloc(sizeof(*n));
  2452. *n=M348;
  2453. r348make(n,NULL,_expression,r818get_comments(C));
  2454. _assertion=(T0*)n;
  2455. }
  2456. /*IF*/if ((R)==((void*)(NULL))) {
  2457. R=se_ma608(1,_assertion);
  2458. }
  2459. else {
  2460. r608add_last(((T608*)R),_assertion);
  2461. }
  2462. /*FI*/_state=0;
  2463. }
  2464.  else if (r818a_tag_mark(C)) {
  2465. {T348*n=malloc(sizeof(*n));
  2466. *n=M348;
  2467. r348make(n,NULL,_expression,r818get_comments(C));
  2468. _assertion=(T0*)n;
  2469. }
  2470. /*IF*/if ((R)==((void*)(NULL))) {
  2471. R=se_ma608(1,_assertion);
  2472. }
  2473. else {
  2474. r608add_last(((T608*)R),_assertion);
  2475. }
  2476. /*FI*/_tag=(((T818*)C))->_last_tag_mark/*161*/;
  2477. _state=1;
  2478. }
  2479.  else if (r818a_expression(C)) {
  2480. {T348*n=malloc(sizeof(*n));
  2481. *n=M348;
  2482. r348make(n,NULL,_expression,r818get_comments(C));
  2483. _assertion=(T0*)n;
  2484. }
  2485. /*IF*/if ((R)==((void*)(NULL))) {
  2486. R=se_ma608(1,_assertion);
  2487. }
  2488. else {
  2489. r608add_last(((T608*)R),_assertion);
  2490. }
  2491. /*FI*/_expression=(((T818*)C))->_last_expression/*97*/;
  2492. _state=2;
  2493. }
  2494. else {
  2495. {T348*n=malloc(sizeof(*n));
  2496. *n=M348;
  2497. r348make(n,NULL,_expression,r818get_comments(C));
  2498. _assertion=(T0*)n;
  2499. }
  2500. /*IF*/if ((R)==((void*)(NULL))) {
  2501. R=se_ma608(1,_assertion);
  2502. }
  2503. else {
  2504. r608add_last(((T608*)R),_assertion);
  2505. }
  2506. /*FI*/_state=4;
  2507. }
  2508. /*FI*/}
  2509.  else{/*IF*/if (r818skip1(C,'\73')) {
  2510. {T348*n=malloc(sizeof(*n));
  2511. *n=M348;
  2512. r348make(n,_tag,_expression,r818get_comments(C));
  2513. _assertion=(T0*)n;
  2514. }
  2515. /*IF*/if ((R)==((void*)(NULL))) {
  2516. R=se_ma608(1,_assertion);
  2517. }
  2518. else {
  2519. r608add_last(((T608*)R),_assertion);
  2520. }
  2521. /*FI*/_state=0;
  2522. }
  2523.  else if (r818a_tag_mark(C)) {
  2524. {T348*n=malloc(sizeof(*n));
  2525. *n=M348;
  2526. r348make(n,_tag,_expression,r818get_comments(C));
  2527. _assertion=(T0*)n;
  2528. }
  2529. /*IF*/if ((R)==((void*)(NULL))) {
  2530. R=se_ma608(1,_assertion);
  2531. }
  2532. else {
  2533. r608add_last(((T608*)R),_assertion);
  2534. }
  2535. /*FI*/_tag=(((T818*)C))->_last_tag_mark/*161*/;
  2536. _state=1;
  2537. }
  2538.  else if (r818a_expression(C)) {
  2539. {T348*n=malloc(sizeof(*n));
  2540. *n=M348;
  2541. r348make(n,_tag,_expression,r818get_comments(C));
  2542. _assertion=(T0*)n;
  2543. }
  2544. /*IF*/if ((R)==((void*)(NULL))) {
  2545. R=se_ma608(1,_assertion);
  2546. }
  2547. else {
  2548. r608add_last(((T608*)R),_assertion);
  2549. }
  2550. /*FI*/_expression=(((T818*)C))->_last_expression/*97*/;
  2551. _state=2;
  2552. }
  2553. else {
  2554. {T348*n=malloc(sizeof(*n));
  2555. *n=M348;
  2556. r348make(n,_tag,_expression,r818get_comments(C));
  2557. _assertion=(T0*)n;
  2558. }
  2559. /*IF*/if ((R)==((void*)(NULL))) {
  2560. R=se_ma608(1,_assertion);
  2561. }
  2562. else {
  2563. r608add_last(((T608*)R),_assertion);
  2564. }
  2565. /*FI*/_state=4;
  2566. }
  2567. /*FI*/}}
  2568. }
  2569. return R;
  2570. }
  2571. void r818wcpefnc(T818* C,T0* a1,T0* a2){
  2572. /*[IRF3.6append*/{T0* b1=((T0*)ms136_818);
  2573. r7append(((T7*)(oBC683explanation)),b1);
  2574. }/*]*/
  2575. /*[IRF3.6append*/{T0* b1=a1;
  2576. r7append(((T7*)(oBC683explanation)),b1);
  2577. }/*]*/
  2578. /*[IRF3.6append*/{T0* b1=((T0*)ms137_818);
  2579. r7append(((T7*)(oBC683explanation)),b1);
  2580. }/*]*/
  2581. /*[IRF3.6append*/{T0* b1=a2;
  2582. r7append(((T7*)(oBC683explanation)),b1);
  2583. }/*]*/
  2584. /*[IRF3.6wcp*/{T818* C1=C;
  2585. T0* b1=((T0*)ms138_818);
  2586. r818warning(r818current_position(C1),b1);
  2587. }/*]*/
  2588. }
  2589. /*No:EIFFEL_PARSER.us_double*/
  2590. T0* r818a_alias(T818* C){
  2591. T0* R=NULL;
  2592. /*IF*/if (r818a_keyword(C,((T0*)ms1_470))) {
  2593. /*IF*/if (r818a_manifest_string(C)) {
  2594. R=(((T805*)((T805*)((((T818*)C))->_last_manifest_string/*145*/))))->_to_string/*16*/;
  2595. }
  2596. else {
  2597. r818fcp(C,((T0*)ms91_818));
  2598. }
  2599. /*FI*/}
  2600. /*FI*/return R;
  2601. }
  2602. T0* r818parse_run_type(T818* C){
  2603. T0* R=NULL;
  2604. /*IF*/if (r818a_class_type(C)) {
  2605. R=(((T818*)C))->_last_class_type/*93*/;
  2606. }
  2607. else {
  2608. r818fcp(C,((T0*)ms156_818));
  2609. }
  2610. /*FI*/return R;
  2611. }
  2612. int r818a_debug(T818* C){
  2613. int R=0;
  2614. T0* _e_debug=NULL;
  2615. T0* _list=NULL;
  2616. T0* _sp=NULL;
  2617. /*IF*/if (r818a_keyword(C,((T0*)ms7_470))) {
  2618. {T627*n=malloc(sizeof(*n));
  2619. *n=M627;
  2620. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  2621. _sp=(T0*)n;
  2622. }
  2623. /*IF*/if (r818skip1(C,'\50')) {
  2624. while (!(!(r818a_manifest_string(C)))) {
  2625. /*IF*/if ((_list)==((void*)(NULL))) {
  2626. _list=se_ma381(1,(((T818*)C))->_last_manifest_string/*145*/);
  2627. }
  2628. else {
  2629. r381add_last(((T381*)_list),(((T818*)C))->_last_manifest_string/*145*/);
  2630. }
  2631. /*FI*/C->_ok=r818skip1(C,'\54');
  2632. }
  2633. /*IF*/if ((_list)==((void*)(NULL))) {
  2634. /*[IRF3.6wcp*/{T818* C1=C;
  2635. T0* b1=((T0*)ms69_818);
  2636. r818warning(r818current_position(C1),b1);
  2637. }/*]*/
  2638. }
  2639. /*FI*//*IF*/if (!(r818skip1(C,'\51'))) {
  2640. r818fcp(C,((T0*)ms70_818));
  2641. }
  2642. /*FI*/}
  2643. /*FI*/R=1;
  2644. {T347*n=malloc(sizeof(*n));
  2645. *n=M347;
  2646. r347make(n,_sp,_list,r818a_compound2(C,((T0*)ms71_818),((T0*)ms12_470)));
  2647. _e_debug=(T0*)n;
  2648. }
  2649. C->_last_instruction=_e_debug;
  2650. }
  2651. /*FI*/return R;
  2652. }
  2653. int r818a_real(T818* C){
  2654. int R=0;
  2655. int _c=0;
  2656. int _l=0;
  2657. int _state=0;
  2658. /*IF*/if ((r3is_digit((((T818*)C))->_cc/*24*/))||(((((T818*)C))->_cc/*24*/)==('\56'))) {
  2659. _l=(((T818*)C))->_line/*16*/;
  2660. _c=(((T818*)C))->_column/*12*/;
  2661. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC818tmp_string)))))->_count)=(0);
  2662. /*]*/
  2663. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\56')) {
  2664. r7append(((T7*)(oBC818tmp_string)),((T0*)ms185_470));
  2665. _state=5;
  2666. }
  2667. else {
  2668. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2669. }
  2670. /*FI*/while (!((_state)>(11))) {
  2671. r818next_char(C);
  2672. {int z1=_state;
  2673.  
  2674. if((0==z1)){
  2675. {int z2=(((T818*)C))->_cc/*24*/;
  2676.  
  2677. if(((48<=z2)&&(z2<=57))){
  2678. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2679. }
  2680.  else 
  2681. if((46==z2)){
  2682. r7extend(((T7*)(oBC818tmp_string)),'\56');
  2683. _state=4;
  2684. }
  2685.  else{_state=13;
  2686. }}
  2687. }
  2688.  else 
  2689. if((1==z1)){
  2690. {int z2=(((T818*)C))->_cc/*24*/;
  2691.  
  2692. if(((48<=z2)&&(z2<=57))){
  2693. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2694. _state=2;
  2695. }
  2696.  else{r818fcp(C,((T0*)ms147_818));
  2697. }}
  2698. }
  2699.  else 
  2700. if((2==z1)){
  2701. {int z2=(((T818*)C))->_cc/*24*/;
  2702.  
  2703. if(((48<=z2)&&(z2<=57))){
  2704. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2705. _state=3;
  2706. }
  2707.  else{r818fcp(C,((T0*)ms147_818));
  2708. }}
  2709. }
  2710.  else 
  2711. if((3==z1)){
  2712. {int z2=(((T818*)C))->_cc/*24*/;
  2713.  
  2714. if(((48<=z2)&&(z2<=57))){
  2715. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2716. _state=0;
  2717. }
  2718.  else{r818fcp(C,((T0*)ms147_818));
  2719. }}
  2720. }
  2721.  else 
  2722. if((4==z1)){
  2723. {int z2=(((T818*)C))->_cc/*24*/;
  2724.  
  2725. if(((48<=z2)&&(z2<=57))){
  2726. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2727. _state=6;
  2728. }
  2729.  else 
  2730. if((69==z2)||(101==z2)){
  2731. r7extend(((T7*)(oBC818tmp_string)),'E');
  2732. _state=10;
  2733. }
  2734.  else{_state=12;
  2735. }}
  2736. }
  2737.  else 
  2738. if((5==z1)){
  2739. {int z2=(((T818*)C))->_cc/*24*/;
  2740.  
  2741. if(((48<=z2)&&(z2<=57))){
  2742. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2743. _state=6;
  2744. }
  2745.  else{_state=13;
  2746. }}
  2747. }
  2748.  else 
  2749. if((6==z1)){
  2750. {int z2=(((T818*)C))->_cc/*24*/;
  2751.  
  2752. if(((48<=z2)&&(z2<=57))){
  2753. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2754. }
  2755.  else 
  2756. if((69==z2)||(101==z2)){
  2757. r7extend(((T7*)(oBC818tmp_string)),'E');
  2758. _state=10;
  2759. }
  2760.  else 
  2761. if((95==z2)){
  2762. _state=7;
  2763. }
  2764.  else{_state=12;
  2765. }}
  2766. }
  2767.  else 
  2768. if((7==z1)){
  2769. {int z2=(((T818*)C))->_cc/*24*/;
  2770.  
  2771. if(((48<=z2)&&(z2<=57))){
  2772. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2773. _state=8;
  2774. }
  2775.  else{r818fcp(C,((T0*)ms139_818));
  2776. }}
  2777. }
  2778.  else 
  2779. if((8==z1)){
  2780. {int z2=(((T818*)C))->_cc/*24*/;
  2781.  
  2782. if(((48<=z2)&&(z2<=57))){
  2783. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2784. _state=9;
  2785. }
  2786.  else{r818fcp(C,((T0*)ms139_818));
  2787. }}
  2788. }
  2789.  else 
  2790. if((9==z1)){
  2791. {int z2=(((T818*)C))->_cc/*24*/;
  2792.  
  2793. if(((48<=z2)&&(z2<=57))){
  2794. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2795. _state=6;
  2796. }
  2797.  else{r818fcp(C,((T0*)ms139_818));
  2798. }}
  2799. }
  2800.  else 
  2801. if((10==z1)){
  2802. {int z2=(((T818*)C))->_cc/*24*/;
  2803.  
  2804. if((43==z2)){
  2805. _state=11;
  2806. }
  2807.  else 
  2808. if((45==z2)){
  2809. r7extend(((T7*)(oBC818tmp_string)),'\55');
  2810. _state=11;
  2811. }
  2812.  else 
  2813. if(((48<=z2)&&(z2<=57))){
  2814. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2815. _state=11;
  2816. }
  2817.  else{r818fcp(C,((T0*)ms29_818));
  2818. _state=13;
  2819. }}
  2820. }
  2821.  else{{int z2=(((T818*)C))->_cc/*24*/;
  2822.  
  2823. if(((48<=z2)&&(z2<=57))){
  2824. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  2825. }
  2826.  else{_state=12;
  2827. }}
  2828. }}
  2829. }
  2830. /*IF*/if ((_state)==(12)) {
  2831. {T936*n=malloc(sizeof(*n));
  2832. *n=M936;
  2833. r936make(n,r818pos(_l,_c),r7twin(((T7*)(oBC818tmp_string))));
  2834. C->_last_real_constant=(T0*)n;
  2835. }
  2836. R=1;
  2837. r818skip_comments(C);
  2838. }
  2839. else {
  2840. r818go_back_at(C,_l,_c);
  2841. }
  2842. /*FI*/}
  2843. /*FI*/return R;
  2844. }
  2845. void r818a_redefine_list(T818* C){
  2846. /*IF*/if (r818a_feature_list(C)) {
  2847. r877set_redefine(((T877*)((((T818*)C))->_last_parent/*149*/)),(((T818*)C))->_last_feature_list/*105*/);
  2848. }
  2849. /*FI*/}
  2850. /*No:EIFFEL_PARSER.fz_undefine*/
  2851. void r818a_local_var_list(T818* C,T0* a1){
  2852. int _state=0;
  2853. int _rank=0;
  2854. T0* _list=NULL;
  2855. T0* _declaration=NULL;
  2856. T0* _name_list=NULL;
  2857. T0* _name=NULL;
  2858. while (!((_state)>(4))) {
  2859. {int z1=_state;
  2860.  
  2861. if((0==z1)){
  2862. /*IF*/if (r818a_identifier(C)) {
  2863. _name=r511to_local_name1(((T511*)(oBC818tmp_name)));
  2864. _state=1;
  2865. /*IF*/if (((((T818*)C))->_arguments/*45*/)!=((void*)(NULL))) {
  2866. _rank=r31rank_of(((T31*)((((T818*)C))->_arguments/*45*/)),(((T39*)((T39*)_name)))->_to_string/*12*/);
  2867. /*IF*/if ((_rank)>(0)) {
  2868. r683add_position((((T39*)((T39*)_name)))->_start_position/*16*/);
  2869. r683add_position((((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)((((T818*)C))->_arguments/*45*/))))->_flat_list/*12*/)),_rank)/*)*/))))->_start_position/*16*/);
  2870. r683error(((T683*)(oBC364eh)),((T0*)ms16_818));
  2871. }
  2872. /*FI*/}
  2873. /*FI*/}
  2874.  else if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\73'))) {
  2875. /*[IRF3.6wcp*/{T818* C1=C;
  2876. T0* b1=((T0*)ms151_818);
  2877. r818warning(r818current_position(C1),b1);
  2878. }/*]*/
  2879. C->_ok=(r818skip1(C,'\54'))||(r818skip1(C,'\73'));
  2880. }
  2881. else {
  2882. _state=5;
  2883. }
  2884. /*FI*/}
  2885.  else 
  2886. if((1==z1)){
  2887. /*IF*/if (r818skip1(C,'\72')) {
  2888. /*IF*/if ((_name_list)!=((void*)(NULL))) {
  2889. r733add_last(((T733*)_name_list),_name);
  2890. _name=NULL;
  2891. }
  2892. /*FI*/_state=3;
  2893. }
  2894. else {
  2895. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
  2896. /*[IRF3.6wcp*/{T818* C1=C;
  2897. T0* b1=((T0*)ms17_818);
  2898. r818warning(r818current_position(C1),b1);
  2899. }/*]*/
  2900. C->_ok=r818skip1(C,'\73');
  2901. }
  2902. else {
  2903. C->_ok=r818skip1(C,'\54');
  2904. }
  2905. /*FI*//*IF*/if ((_name_list)==((void*)(NULL))) {
  2906. _name_list=se_ma733(1,_name);
  2907. }
  2908. else {
  2909. r733add_last(((T733*)_name_list),_name);
  2910. }
  2911. /*FI*/_name=NULL;
  2912. _state=2;
  2913. }
  2914. /*FI*/}
  2915.  else 
  2916. if((2==z1)){
  2917. /*IF*/if (r818a_identifier(C)) {
  2918. _name=r511to_local_name1(((T511*)(oBC818tmp_name)));
  2919. _state=1;
  2920. /*IF*/if (((((T818*)C))->_arguments/*45*/)!=((void*)(NULL))) {
  2921. _rank=r31rank_of(((T31*)((((T818*)C))->_arguments/*45*/)),(((T39*)((T39*)_name)))->_to_string/*12*/);
  2922. /*IF*/if ((_rank)>(0)) {
  2923. r683add_position((((T39*)((T39*)_name)))->_start_position/*16*/);
  2924. r683add_position((((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)((((T818*)C))->_arguments/*45*/))))->_flat_list/*12*/)),_rank)/*)*/))))->_start_position/*16*/);
  2925. r683error(((T683*)(oBC364eh)),((T0*)ms18_818));
  2926. }
  2927. /*FI*/}
  2928. /*FI*/}
  2929.  else if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\73'))) {
  2930. /*[IRF3.6wcp*/{T818* C1=C;
  2931. T0* b1=((T0*)ms151_818);
  2932. r818warning(r818current_position(C1),b1);
  2933. }/*]*/
  2934. C->_ok=(r818skip1(C,'\54'))||(r818skip1(C,'\73'));
  2935. }
  2936. else {
  2937. _state=6;
  2938. }
  2939. /*FI*/}
  2940.  else 
  2941. if((3==z1)){
  2942. /*IF*/if (r818a_type(C)) {
  2943. /*IF*/if ((_name_list)!=((void*)(NULL))) {
  2944. {T64*n=malloc(sizeof(*n));
  2945. *n=M64;
  2946. r64make(n,_name_list,(((T818*)C))->_last_type/*157*/);
  2947. _declaration=(T0*)n;
  2948. }
  2949. _name_list=NULL;
  2950. }
  2951. else {
  2952. {T723*n=malloc(sizeof(*n));
  2953. *n=M723;
  2954. r723make(n,_name,(((T818*)C))->_last_type/*157*/);
  2955. _declaration=(T0*)n;
  2956. }
  2957. _name=NULL;
  2958. }
  2959. /*FI*//*IF*/if ((_list)==((void*)(NULL))) {
  2960. _list=se_ma382(1,_declaration);
  2961. }
  2962. else {
  2963. r382add_last(((T382*)_list),_declaration);
  2964. }
  2965. /*FI*/_state=4;
  2966. }
  2967. else {
  2968. _state=6;
  2969. }
  2970. /*FI*/}
  2971.  else{/*IF*/if (((((T818*)C))->_cc/*24*/)==('\54')) {
  2972. /*[IRF3.6wcp*/{T818* C1=C;
  2973. T0* b1=((T0*)ms19_818);
  2974. r818warning(r818current_position(C1),b1);
  2975. }/*]*/
  2976. C->_ok=r818skip1(C,'\54');
  2977. _state=0;
  2978. }
  2979. else {
  2980. C->_ok=r818skip1(C,'\73');
  2981. _state=0;
  2982. }
  2983. /*FI*/}}
  2984. }
  2985. /*IF*/if ((_state)==(6)) {
  2986. r818fcp(C,((T0*)ms20_818));
  2987. }
  2988.  else if ((_list)!=((void*)(NULL))) {
  2989. {T620*n=malloc(sizeof(*n));
  2990. *n=M620;
  2991. r620make(n,a1,_list);
  2992. C->_local_vars=(T0*)n;
  2993. }
  2994. /*[IRF3.3set_local_vars*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_local_vars)=((((T818*)C))->_local_vars/*49*/);
  2995. /*]*/
  2996. }
  2997. /*FI*/}
  2998. /*No:EIFFEL_PARSER.fz_59*/
  2999. /*No:EIFFEL_PARSER.fz_desc*/
  3000. void r818a_rename_list(T818* C){
  3001. while (!(!(r818a_rename_pair(C)))) {
  3002. C->_ok=r818skip1(C,'\54');
  3003. }
  3004. }
  3005. int r818a_argument(T818* C){
  3006. int R=0;
  3007. int _rank=0;
  3008. /*IF*/if (((((T818*)C))->_arguments/*45*/)!=((void*)(NULL))) {
  3009. _rank=r31rank_of(((T31*)((((T818*)C))->_arguments/*45*/)),r511to_string(((T511*)(oBC818tmp_name))));
  3010. /*IF*/if ((_rank)>(0)) {
  3011. C->_last_expression=r511to_argument_name2(((T511*)(oBC818tmp_name)),(((T818*)C))->_arguments/*45*/,_rank);
  3012. R=1;
  3013. }
  3014. /*FI*/}
  3015. /*FI*/return R;
  3016. }
  3017. /*No:EIFFEL_PARSER.fz_local*/
  3018. /*No:EIFFEL_PARSER.formal_generic_list*/
  3019. T0* r818to_call(T0* a1,T0* a2,T0* a3){
  3020. T0* R=NULL;
  3021. /*IF*/if ((a2)==((void*)(NULL))) {
  3022. R=a1;
  3023. }
  3024.  else if ((a3)==((void*)(NULL))) {
  3025. {T487*n=malloc(sizeof(*n));
  3026. *n=M487;
  3027. r487make(n,a1,a2);
  3028. R=(T0*)n;
  3029. }
  3030. }
  3031.  else if ((r431count(((T431*)a3)))==(1)) {
  3032. {T492*n=malloc(sizeof(*n));
  3033. *n=M492;
  3034. r492make(n,a1,a2,a3);
  3035. R=(T0*)n;
  3036. }
  3037. }
  3038. else {
  3039. {T915*n=malloc(sizeof(*n));
  3040. *n=M915;
  3041. r915make(n,a1,a2,a3);
  3042. R=(T0*)n;
  3043. }
  3044. }
  3045. /*FI*/return R;
  3046. }
  3047. /*No:EIFFEL_PARSER.fz_require*/
  3048. /*No:EIFFEL_PARSER.fz_then*/
  3049. /*No:EIFFEL_PARSER.fz_when*/
  3050. /*No:EIFFEL_PARSER.set_drop_comments*/
  3051. /*No:EIFFEL_PARSER.fz_error_stars*/
  3052. void r818a_undefine_list(T818* C){
  3053. /*IF*/if (r818a_feature_list(C)) {
  3054. r877set_undefine(((T877*)((((T818*)C))->_last_parent/*149*/)),(((T818*)C))->_last_feature_list/*105*/);
  3055. }
  3056. /*FI*/}
  3057. /*No:EIFFEL_PARSER.current_line*/
  3058. /*No:EIFFEL_PARSER.fatal_error*/
  3059. /*No:EIFFEL_PARSER.us_native_array*/
  3060. void r818a_after_a_dot(T818* C,int a1,T0* a2){
  3061. T0* _eal=NULL;
  3062. T0* _sfn=NULL;
  3063. /*IF*/if (r818a_identifier(C)) {
  3064. /*IF*/if (((r818a_result(C))||(r818a_void(C)))||(r818a_current(C))) {
  3065. r683add_position(X662start_position((((T818*)C))->_last_expression/*97*/));
  3066. r683error(((T683*)(oBC364eh)),((T0*)ms33_818));
  3067. }
  3068. /*FI*/_sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  3069. _eal=r818a_actuals(C);
  3070. r818a_r10(C,a1,a2,_sfn,_eal);
  3071. }
  3072. else {
  3073. r818fcp(C,((T0*)ms34_818));
  3074. }
  3075. /*FI*/}
  3076. int r818a_constant(T818* C){
  3077. int R=0;
  3078. T0* _sfn=NULL;
  3079. T0* _e_current=NULL;
  3080. /*IF*/if (r818a_identifier(C)) {
  3081. R=1;
  3082. _sfn=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  3083. {T358*n=malloc(sizeof(*n));
  3084. *n=M358;
  3085. r358make(n,(((T446*)((T446*)_sfn)))->_start_position/*20*/,0);
  3086. _e_current=(T0*)n;
  3087. }
  3088. {T487*n=malloc(sizeof(*n));
  3089. *n=M487;
  3090. r487make(n,_e_current,_sfn);
  3091. C->_last_expression=(T0*)n;
  3092. }
  3093. }
  3094.  else if (r818a_character_constant(C)) {
  3095. R=1;
  3096. C->_last_expression=(((T818*)C))->_last_character_constant/*85*/;
  3097. }
  3098.  else if (r818a_integer_constant(C)) {
  3099. R=1;
  3100. C->_last_expression=(((T818*)C))->_last_integer_constant/*129*/;
  3101. }
  3102. /*FI*/return R;
  3103. }
  3104. /*No:EIFFEL_PARSER.last_bit_constant*/
  3105. /*No:EIFFEL_PARSER.fz_check*/
  3106. T0* r818a_routine_body(T818* C){
  3107. T0* R=NULL;
  3108. /*IF*/if (r818a_keyword(C,((T0*)ms8_470))) {
  3109. r605set_is_deferred(((T605*)((((T818*)C))->_last_base_class/*65*/)));
  3110. R=r505to_deferred_routine(((T505*)(oBC818tmp_feature)));
  3111. }
  3112.  else if (r818a_keyword(C,((T0*)ms16_470))) {
  3113. R=r818a_external(C);
  3114. }
  3115.  else if (r818a_keyword(C,((T0*)ms9_470))) {
  3116. /*[IRF3.3set_routine_body*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_routine_body)=(r818a_compound1(C,((T0*)ms116_818)));
  3117. /*]*/
  3118. R=r505to_procedure_or_function(((T505*)(oBC818tmp_feature)));
  3119. }
  3120.  else if (r818a_keyword(C,((T0*)ms35_470))) {
  3121. /*[IRF3.3set_routine_body*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_routine_body)=(r818a_compound1(C,((T0*)ms117_818)));
  3122. /*]*/
  3123. R=r505to_once_routine(((T505*)(oBC818tmp_feature)));
  3124. }
  3125. else {
  3126. r818fcp(C,((T0*)ms118_818));
  3127. }
  3128. /*FI*/return R;
  3129. }
  3130. int r818a_type(T818* C){
  3131. int R=0;
  3132. T0* _argument_name2=NULL;
  3133. T0* _sp=NULL;
  3134. R=1;
  3135. /*IF*/if (r818a_keyword(C,((T0*)ms30_470))) {
  3136. {T627*n=malloc(sizeof(*n));
  3137. *n=M627;
  3138. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3139. _sp=(T0*)n;
  3140. }
  3141. /*IF*/if (r818a_identifier(C)) {
  3142. /*IF*/if (r818a_current(C)) {
  3143. {T958*n=malloc(sizeof(*n));
  3144. *n=M958;
  3145. r958make(n,_sp,(((T818*)C))->_last_expression/*97*/);
  3146. C->_last_type=(T0*)n;
  3147. }
  3148. }
  3149.  else if (r818a_argument(C)) {
  3150. _argument_name2=(((T818*)C))->_last_expression/*97*/;
  3151. if(NULL!=(_argument_name2))switch(((T0*)_argument_name2)->id) {
  3152. case 886: 
  3153. break;
  3154. default:
  3155. _argument_name2=NULL;
  3156. };{T239*n=malloc(sizeof(*n));
  3157. *n=M239;
  3158. r239make(n,_sp,_argument_name2);
  3159. C->_last_type=(T0*)n;
  3160. }
  3161. }
  3162. else {
  3163. {T648*n=malloc(sizeof(*n));
  3164. *n=M648;
  3165. r648make(n,_sp,r511to_simple_feature_name(((T511*)(oBC818tmp_name))));
  3166. C->_last_type=(T0*)n;
  3167. }
  3168. }
  3169. /*FI*/}
  3170. else {
  3171. r818fcp(C,((T0*)ms129_818));
  3172. }
  3173. /*FI*/}
  3174.  else if (r818a_keyword(C,((T0*)ms14_470))) {
  3175. {T627*n=malloc(sizeof(*n));
  3176. *n=M627;
  3177. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3178. _sp=(T0*)n;
  3179. }
  3180. /*IF*/if (r818a_class_type(C)) {
  3181. {T523*n=malloc(sizeof(*n));
  3182. *n=M523;
  3183. r523make(n,_sp,(((T818*)C))->_last_class_type/*93*/);
  3184. C->_last_type=(T0*)n;
  3185. }
  3186. }
  3187. else {
  3188. r818fcp(C,((T0*)ms130_818));
  3189. }
  3190. /*FI*/}
  3191.  else if (r818a_keyword(C,((T0*)ms3_473))) {
  3192. {T627*n=malloc(sizeof(*n));
  3193. *n=M627;
  3194. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3195. _sp=(T0*)n;
  3196. }
  3197. /*IF*/if (r818a_integer(C)) {
  3198. {T549*n=malloc(sizeof(*n));
  3199. *n=M549;
  3200. r549make(n,_sp,(((T818*)C))->_last_integer_constant/*129*/);
  3201. C->_last_type=(T0*)n;
  3202. }
  3203. }
  3204.  else if (r818a_identifier(C)) {
  3205. {T558*n=malloc(sizeof(*n));
  3206. *n=M558;
  3207. r558make(n,_sp,r511to_simple_feature_name(((T511*)(oBC818tmp_name))));
  3208. C->_last_type=(T0*)n;
  3209. }
  3210. }
  3211. else {
  3212. r818fcp(C,((T0*)ms131_818));
  3213. }
  3214. /*FI*/}
  3215.  else if (r818a_type_formal_generic(C)) {
  3216. C->_last_type=(((T818*)C))->_last_type_formal_generic/*117*/;
  3217. }
  3218.  else if (r818a_class_type(C)) {
  3219. C->_last_type=(((T818*)C))->_last_class_type/*93*/;
  3220. }
  3221. else {
  3222. R=0;
  3223. }
  3224. /*FI*/return R;
  3225. }
  3226. /*No:EIFFEL_PARSER.last_manifest_constant*/
  3227. int r818a_inspect(T818* C){
  3228. int R=0;
  3229. T0* _ec=NULL;
  3230. T0* _i=NULL;
  3231. T0* _spec=NULL;
  3232. T0* _sp=NULL;
  3233. /*IF*/if (r818a_keyword(C,((T0*)ms25_470))) {
  3234. R=1;
  3235. {T627*n=malloc(sizeof(*n));
  3236. *n=M627;
  3237. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3238. _sp=(T0*)n;
  3239. }
  3240. /*IF*/if (r818a_expression(C)) {
  3241. C->_last_expression=X662add_comment((((T818*)C))->_last_expression/*97*/,r818get_comments(C));
  3242. }
  3243. else {
  3244. r818fcp(C,((T0*)ms99_818));
  3245. }
  3246. /*FI*/{T270*n=malloc(sizeof(*n));
  3247. *n=M270;
  3248. r270make(n,_sp,(((T818*)C))->_last_expression/*97*/);
  3249. _i=(T0*)n;
  3250. }
  3251. while (!(!(r818a_when_part(C,_i)))) {
  3252. }
  3253. /*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
  3254. {T627*n=malloc(sizeof(*n));
  3255. *n=M627;
  3256. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3257. _spec=(T0*)n;
  3258. }
  3259. _ec=r818a_compound2(C,((T0*)ms100_818),((T0*)ms12_470));
  3260. r270set_else_compound(((T270*)_i),_spec,_ec);
  3261. }
  3262.  else if (!(r818a_keyword(C,((T0*)ms12_470)))) {
  3263. /*[IRF3.6wcp*/{T818* C1=C;
  3264. T0* b1=((T0*)ms101_818);
  3265. r818warning(r818current_position(C1),b1);
  3266. }/*]*/
  3267. }
  3268. /*FI*/C->_last_instruction=_i;
  3269. }
  3270. /*FI*/return R;
  3271. }
  3272. int r818a_assignment_or_call(T818* C){
  3273. int R=0;
  3274. /*IF*/if ((r818skip1(C,'\50'))&&(r818a_expression(C))) {
  3275. R=1;
  3276. /*IF*/if (r818skip1(C,'\51')) {
  3277. r818a_r10(C,1,(((T818*)C))->_last_expression/*97*/,NULL,NULL);
  3278. }
  3279. else {
  3280. r818fcp(C,((T0*)ms35_818));
  3281. }
  3282. /*FI*/}
  3283.  else if (r818a_identifier(C)) {
  3284. R=1;
  3285. /*IF*/if (r818skip2(C,'\72','\75')) {
  3286. r818a_assignment_aux(C,1);
  3287. }
  3288.  else if (r818skip2(C,'\77','\75')) {
  3289. r818a_assignment_aux(C,0);
  3290. }
  3291.  else if ((((r818a_current(C))||(r818a_result(C)))||(r818a_local_variable(C)))||(r818a_argument(C))) {
  3292. r818a_r10(C,1,(((T818*)C))->_last_expression/*97*/,NULL,NULL);
  3293. }
  3294. else {
  3295. r818a_procedure_call(C);
  3296. }
  3297. /*FI*/}
  3298. /*FI*/return R;
  3299. }
  3300. /*No:EIFFEL_PARSER.last_feature_list*/
  3301. T0* r818get_comments(T818* C){
  3302. T0* R=NULL;
  3303. R=(((T818*)C))->_last_comments/*25*/;
  3304. C->_last_comments=NULL;
  3305. return R;
  3306. }
  3307. void r818warning(T0* a1,T0* a2){
  3308. r683add_position(a1);
  3309. r683warning(((T683*)(oBC364eh)),a2);
  3310. }
  3311. /*No:EIFFEL_PARSER.fz_retry*/
  3312. /*No:EIFFEL_PARSER.fz_inherit*/
  3313. /*No:EIFFEL_PARSER.fz_select*/
  3314. int r818a_creation(T818* C){
  3315. int R=0;
  3316. int _state=0;
  3317. T0* _call=NULL;
  3318. T0* _proc_name=NULL;
  3319. T0* _writable=NULL;
  3320. T0* _type=NULL;
  3321. T0* _sp=NULL;
  3322. while (!((_state)>(6))) {
  3323. {int z1=_state;
  3324.  
  3325. if((0==z1)){
  3326. /*IF*/if (r818skip1(C,'\41')) {
  3327. {T627*n=malloc(sizeof(*n));
  3328. *n=M627;
  3329. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3330. _sp=(T0*)n;
  3331. }
  3332. _state=1;
  3333. }
  3334. else {
  3335. _state=7;
  3336. }
  3337. /*FI*/}
  3338.  else 
  3339. if((1==z1)){
  3340. /*IF*/if (r818a_type(C)) {
  3341. _type=(((T818*)C))->_last_type/*157*/;
  3342. /*IF*/if (X291is_anchored(_type)) {
  3343. r818warning(X291start_position(_type),((T0*)ms62_818));
  3344. }
  3345. /*FI*/_state=2;
  3346. }
  3347.  else if (r818skip1(C,'\41')) {
  3348. _state=3;
  3349. }
  3350. else {
  3351. r818fcp(C,((T0*)ms63_818));
  3352. _state=8;
  3353. }
  3354. /*FI*/}
  3355.  else 
  3356. if((2==z1)){
  3357. /*IF*/if (r818skip1(C,'\41')) {
  3358. _state=3;
  3359. }
  3360. else {
  3361. _state=8;
  3362. r818fcp(C,((T0*)ms64_818));
  3363. }
  3364. /*FI*/}
  3365.  else 
  3366. if((3==z1)){
  3367. /*IF*/if (r818a_identifier(C)) {
  3368. /*IF*/if (r818a_current(C)) {
  3369. _state=8;
  3370. r818error(X662start_position((((T818*)C))->_last_expression/*97*/),((T0*)ms65_818));
  3371. }
  3372.  else if (r818a_argument(C)) {
  3373. _state=8;
  3374. r818error(X662start_position((((T818*)C))->_last_expression/*97*/),((T0*)ms66_818));
  3375. }
  3376.  else if ((r818a_result(C))||(r818a_local_variable(C))) {
  3377. _writable=(((T818*)C))->_last_expression/*97*/;
  3378. _state=4;
  3379. }
  3380. else {
  3381. _writable=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  3382. _state=4;
  3383. }
  3384. /*FI*/}
  3385. else {
  3386. _state=8;
  3387. r818fcp(C,((T0*)ms67_818));
  3388. }
  3389. /*FI*/}
  3390.  else 
  3391. if((4==z1)){
  3392. /*IF*/if (r818skip1unless2(C,'\56','\56')) {
  3393. _state=5;
  3394. }
  3395. else {
  3396. _state=7;
  3397. }
  3398. /*FI*/}
  3399.  else 
  3400. if((5==z1)){
  3401. /*IF*/if (r818a_identifier(C)) {
  3402. _proc_name=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  3403. _state=6;
  3404. }
  3405. else {
  3406. _state=8;
  3407. r818fcp(C,((T0*)ms68_818));
  3408. }
  3409. /*FI*/}
  3410.  else{/*IF*/if (((((T818*)C))->_cc/*24*/)==('\50')) {
  3411. _call=r818to_proc_call(C,_writable,_proc_name,r818a_actuals(C));
  3412. }
  3413. else {
  3414. {T268*n=malloc(sizeof(*n));
  3415. *n=M268;
  3416. r268make(n,_writable,_proc_name);
  3417. _call=(T0*)n;
  3418. }
  3419. }
  3420. /*FI*/_state=7;
  3421. }}
  3422. }
  3423. /*IF*/if (((_state)==(7))&&((_sp)!=((void*)(NULL)))) {
  3424. R=1;
  3425. /*IF*/if (((_type)==((void*)(NULL)))&&((_call)==((void*)(NULL)))) {
  3426. {T362*n=malloc(sizeof(*n));
  3427. *n=M362;
  3428. r362make(n,_sp,_writable);
  3429. C->_last_instruction=(T0*)n;
  3430. }
  3431. }
  3432.  else if (((_type)!=((void*)(NULL)))&&((_call)==((void*)(NULL)))) {
  3433. {T376*n=malloc(sizeof(*n));
  3434. *n=M376;
  3435. r376make(n,_sp,_type,_writable);
  3436. C->_last_instruction=(T0*)n;
  3437. }
  3438. }
  3439.  else if (((_type)==((void*)(NULL)))&&((_call)!=((void*)(NULL)))) {
  3440. {T390*n=malloc(sizeof(*n));
  3441. *n=M390;
  3442. r390make(n,_sp,_writable,_call);
  3443. C->_last_instruction=(T0*)n;
  3444. }
  3445. }
  3446. else {
  3447. {T404*n=malloc(sizeof(*n));
  3448. *n=M404;
  3449. r404make(n,_sp,_type,_writable,_call);
  3450. C->_last_instruction=(T0*)n;
  3451. }
  3452. }
  3453. /*FI*/}
  3454. /*FI*/return R;
  3455. }
  3456. /*No:EIFFEL_PARSER.fz_old*/
  3457. T0* r818a_routine(T818* C){
  3458. T0* R=NULL;
  3459. T0* _ea=NULL;
  3460. T0* _al=NULL;
  3461. T0* _hc=NULL;
  3462. T0* _sp=NULL;
  3463. /*IF*/if (r818a_keyword(C,((T0*)ms33_470))) {
  3464. /*IF*/if (r818a_manifest_string(C)) {
  3465. /*[IRF3.3set_obsolete_mark*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_obsolete_mark)=((((T818*)C))->_last_manifest_string/*145*/);
  3466. /*]*/
  3467. }
  3468. else {
  3469. r818fcp(C,((T0*)ms114_818));
  3470. }
  3471. /*FI*/}
  3472. /*FI*//*[IRF3.3set_header_comment*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_header_comment)=(r818get_comments(C));
  3473. /*]*/
  3474. /*IF*/if (r818a_keyword(C,((T0*)ms40_470))) {
  3475. {T627*n=malloc(sizeof(*n));
  3476. *n=M627;
  3477. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3478. _sp=(T0*)n;
  3479. }
  3480. /*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
  3481. _hc=r818get_comments(C);
  3482. r505set_require_else(((T505*)(oBC818tmp_feature)),_sp,_hc,r818a_assertion(C));
  3483. }
  3484. else {
  3485. _hc=r818get_comments(C);
  3486. r505set_require(((T505*)(oBC818tmp_feature)),_sp,_hc,r818a_assertion(C));
  3487. }
  3488. /*FI*/}
  3489. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms31_470))) {
  3490. r818a_local_var_list(C,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  3491. }
  3492. /*FI*/R=r818a_routine_body(C);
  3493. /*IF*/if (r818a_keyword(C,((T0*)ms13_470))) {
  3494. {T627*n=malloc(sizeof(*n));
  3495. *n=M627;
  3496. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3497. _sp=(T0*)n;
  3498. }
  3499. C->_in_ensure=1;
  3500. /*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
  3501. _hc=r818get_comments(C);
  3502. _al=r818a_assertion(C);
  3503. /*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) {
  3504. {T633*n=malloc(sizeof(*n));
  3505. *n=M633;
  3506. r633make(n,_sp,_hc,_al);
  3507. _ea=(T0*)n;
  3508. }
  3509. /*[IRF3.3set_ensure_then*/((((T633*)(((T633*)_ea))))->_is_ensure_then)=(1);
  3510. /*]*/
  3511. }
  3512. /*FI*/X368set_ensure_assertion(R,_ea);
  3513. }
  3514. else {
  3515. _hc=r818get_comments(C);
  3516. _al=r818a_assertion(C);
  3517. /*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) {
  3518. {T633*n=malloc(sizeof(*n));
  3519. *n=M633;
  3520. r633make(n,_sp,_hc,_al);
  3521. _ea=(T0*)n;
  3522. }
  3523. }
  3524. /*FI*/X368set_ensure_assertion(R,_ea);
  3525. }
  3526. /*FI*/C->_in_ensure=0;
  3527. }
  3528. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms41_470))) {
  3529. C->_in_rescue=1;
  3530. X368set_rescue_compound(R,r818a_compound2(C,((T0*)ms41_470),((T0*)ms12_470)));
  3531. C->_in_rescue=0;
  3532. }
  3533. else {
  3534. /*IF*/if (!(r818a_keyword(C,((T0*)ms12_470)))) {
  3535. /*[IRF3.6wcp*/{T818* C1=C;
  3536. T0* b1=((T0*)ms115_818);
  3537. r818warning(r818current_position(C1),b1);
  3538. }/*]*/
  3539. }
  3540. /*FI*/}
  3541. /*FI*/C->_local_vars=NULL;
  3542. return R;
  3543. }
  3544. T0*oBC818tmp_name=NULL;
  3545. void r818a_then_part_list(T818* C,T0* a1){
  3546. /*IF*/if (!(r818a_then_part(C,a1))) {
  3547. r818fcp(C,((T0*)ms125_818));
  3548. }
  3549. /*FI*/while (!(!(r818a_keyword(C,((T0*)ms11_470))))) {
  3550. /*IF*/if (!(r818a_then_part(C,a1))) {
  3551. r818fcp(C,((T0*)ms126_818));
  3552. }
  3553. /*FI*/}
  3554. }
  3555. /*No:EIFFEL_PARSER.us_none*/
  3556. void r818a_assignment_aux(T818* C,int a1){
  3557. T0* _rhs=NULL;
  3558. T0* _writable=NULL;
  3559. /*IF*/if (r818a_current(C)) {
  3560. r683add_position(X662start_position((((T818*)C))->_last_expression/*97*/));
  3561. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms36_818);
  3562. r683fatal_error(((T683*)(oBC364eh)),b1);
  3563. }/*]*/
  3564. }
  3565.  else if (r818a_void(C)) {
  3566. r683add_position(r511start_position(((T511*)(oBC818tmp_name))));
  3567. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms37_818);
  3568. r683fatal_error(((T683*)(oBC364eh)),b1);
  3569. }/*]*/
  3570. }
  3571.  else if (r818a_argument(C)) {
  3572. r683add_position(X662start_position((((T818*)C))->_last_expression/*97*/));
  3573. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms38_818);
  3574. r683fatal_error(((T683*)(oBC364eh)),b1);
  3575. }/*]*/
  3576. }
  3577. else {
  3578. /*IF*/if (r511is_result()) {
  3579. /*IF*/if (((((T818*)C))->_function_type/*29*/)==((void*)(NULL))) {
  3580. r818error(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms152_818));
  3581. }
  3582. /*FI*/_writable=r511to_e_result(((T511*)(oBC818tmp_name)));
  3583. }
  3584.  else if (r818a_local_variable(C)) {
  3585. _writable=(((T818*)C))->_last_expression/*97*/;
  3586. }
  3587. else {
  3588. _writable=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  3589. }
  3590. /*FI*//*IF*/if (r818a_expression(C)) {
  3591. _rhs=(((T818*)C))->_last_expression/*97*/;
  3592. /*IF*/if (a1) {
  3593. {T629*n=malloc(sizeof(*n));
  3594. *n=M629;
  3595. r629make(n,_writable,_rhs);
  3596. C->_last_instruction=(T0*)n;
  3597. }
  3598. }
  3599. else {
  3600. {T126*n=malloc(sizeof(*n));
  3601. *n=M126;
  3602. r126make(n,_writable,_rhs);
  3603. C->_last_instruction=(T0*)n;
  3604. }
  3605. }
  3606. /*FI*/}
  3607. else {
  3608. r818fcp(C,((T0*)ms39_818));
  3609. }
  3610. /*FI*/}
  3611. /*FI*/}
  3612. /*No:EIFFEL_PARSER.case_insensitive*/
  3613. /*No:EIFFEL_PARSER.fz_deferred*/
  3614. int r818a_identifier(T818* C){
  3615. int R=0;
  3616. /*IF*/if ((((T818*)C))->_case_insensitive/*0*/) {
  3617. R=r818a_identifier1(C);
  3618. }
  3619. else {
  3620. R=r818a_identifier2(C);
  3621. }
  3622. /*FI*/return R;
  3623. }
  3624. int r818a_expression(T818* C){
  3625. int R=0;
  3626. T0* _list=NULL;
  3627. T0* _sp=NULL;
  3628. /*IF*/if (r818skip2(C,'\74','\74')) {
  3629. R=1;
  3630. {T627*n=malloc(sizeof(*n));
  3631. *n=M627;
  3632. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3633. _sp=(T0*)n;
  3634. }
  3635. while (!(!(r818a_expression(C)))) {
  3636. /*IF*/if ((_list)==((void*)(NULL))) {
  3637. _list=se_ma96(1,(((T818*)C))->_last_expression/*97*/);
  3638. }
  3639. else {
  3640. X96add_last(_list,(((T818*)C))->_last_expression/*97*/);
  3641. }
  3642. /*FI*/C->_ok=r818skip1(C,'\54');
  3643. }
  3644. /*IF*/if (!(r818skip2(C,'\76','\76'))) {
  3645. r818fcp(C,((T0*)ms72_818));
  3646. }
  3647. /*FI*/{T436*n=malloc(sizeof(*n));
  3648. *n=M436;
  3649. r436make(n,_sp,_list);
  3650. C->_last_expression=(T0*)n;
  3651. }
  3652. }
  3653. else {
  3654. R=r818a_e0(C);
  3655. }
  3656. /*FI*/return R;
  3657. }
  3658. void r818a_formal_arg_list(T818* C){
  3659. int _state=0;
  3660. T0* _list=NULL;
  3661. T0* _declaration=NULL;
  3662. T0* _name_list=NULL;
  3663. T0* _name=NULL;
  3664. T0* _sp=NULL;
  3665. C->_arguments=NULL;
  3666. while (!((_state)>(5))) {
  3667. {int z1=_state;
  3668.  
  3669. if((0==z1)){
  3670. /*IF*/if (r818skip1(C,'\50')) {
  3671. {T627*n=malloc(sizeof(*n));
  3672. *n=M627;
  3673. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  3674. _sp=(T0*)n;
  3675. }
  3676. _state=1;
  3677. }
  3678. else {
  3679. _state=6;
  3680. }
  3681. /*FI*/}
  3682.  else 
  3683. if((1==z1)){
  3684. /*IF*/if (r818a_identifier(C)) {
  3685. _name=r511to_argument_name1(((T511*)(oBC818tmp_name)));
  3686. _state=2;
  3687. }
  3688.  else if (r818skip1(C,'\51')) {
  3689. _state=6;
  3690. }
  3691. else {
  3692. _state=7;
  3693. }
  3694. /*FI*/}
  3695.  else 
  3696. if((2==z1)){
  3697. /*IF*/if (r818skip1(C,'\72')) {
  3698. /*IF*/if ((_name_list)!=((void*)(NULL))) {
  3699. r65add_last(((T65*)_name_list),_name);
  3700. _name=NULL;
  3701. }
  3702. /*FI*/_state=4;
  3703. }
  3704. else {
  3705. C->_ok=r818skip1(C,'\54');
  3706. /*IF*/if ((_name_list)==((void*)(NULL))) {
  3707. _name_list=se_ma65(1,_name);
  3708. }
  3709. else {
  3710. r65add_last(((T65*)_name_list),_name);
  3711. }
  3712. /*FI*/_name=NULL;
  3713. _state=3;
  3714. }
  3715. /*FI*/}
  3716.  else 
  3717. if((3==z1)){
  3718. /*IF*/if (r818a_identifier(C)) {
  3719. _name=r511to_argument_name1(((T511*)(oBC818tmp_name)));
  3720. _state=2;
  3721. }
  3722.  else if ((((((T818*)C))->_cc/*24*/)==('\54'))||(((((T818*)C))->_cc/*24*/)==('\73'))) {
  3723. /*[IRF3.6wcp*/{T818* C1=C;
  3724. T0* b1=((T0*)ms151_818);
  3725. r818warning(r818current_position(C1),b1);
  3726. }/*]*/
  3727. C->_ok=(r818skip1(C,'\54'))||(r818skip1(C,'\73'));
  3728. }
  3729. else {
  3730. _state=7;
  3731. }
  3732. /*FI*/}
  3733.  else 
  3734. if((4==z1)){
  3735. /*IF*/if (r818a_type(C)) {
  3736. /*IF*/if ((_name_list)!=((void*)(NULL))) {
  3737. {T64*n=malloc(sizeof(*n));
  3738. *n=M64;
  3739. r64make(n,_name_list,(((T818*)C))->_last_type/*157*/);
  3740. _declaration=(T0*)n;
  3741. }
  3742. _name_list=NULL;
  3743. }
  3744. else {
  3745. {T723*n=malloc(sizeof(*n));
  3746. *n=M723;
  3747. r723make(n,_name,(((T818*)C))->_last_type/*157*/);
  3748. _declaration=(T0*)n;
  3749. }
  3750. _name=NULL;
  3751. }
  3752. /*FI*//*IF*/if ((_list)==((void*)(NULL))) {
  3753. _list=se_ma382(1,_declaration);
  3754. }
  3755. else {
  3756. r382add_last(((T382*)_list),_declaration);
  3757. }
  3758. /*FI*/_declaration=NULL;
  3759. _state=5;
  3760. }
  3761. else {
  3762. _state=7;
  3763. }
  3764. /*FI*/}
  3765.  else{/*IF*/if (r818skip1(C,'\51')) {
  3766. _state=6;
  3767. }
  3768.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  3769. /*[IRF3.6wcp*/{T818* C1=C;
  3770. T0* b1=((T0*)ms13_818);
  3771. r818warning(r818current_position(C1),b1);
  3772. }/*]*/
  3773. C->_ok=r818skip1(C,'\54');
  3774. _state=1;
  3775. }
  3776. else {
  3777. C->_ok=r818skip1(C,'\73');
  3778. _state=1;
  3779. }
  3780. /*FI*/}}
  3781. }
  3782. /*IF*/if ((_state)==(7)) {
  3783. r818fcp(C,((T0*)ms14_818));
  3784. }
  3785.  else if (((_sp)!=((void*)(NULL)))&&((_list)==((void*)(NULL)))) {
  3786. r818warning(_sp,((T0*)ms15_818));
  3787. }
  3788.  else if ((_sp)!=((void*)(NULL))) {
  3789. {T31*n=malloc(sizeof(*n));
  3790. *n=M31;
  3791. r31make(n,_sp,_list);
  3792. C->_arguments=(T0*)n;
  3793. }
  3794. /*[IRF3.3set_arguments*/((((T505*)(((T505*)(oBC818tmp_feature)))))->_arguments)=((((T818*)C))->_arguments/*45*/);
  3795. /*]*/
  3796. }
  3797. /*FI*/}
  3798. /*No:EIFFEL_PARSER.fz_end*/
  3799. /*No:EIFFEL_PARSER.fz_else*/
  3800. /*No:EIFFEL_PARSER.last_class_name*/
  3801. int r818a_type_formal_generic(T818* C){
  3802. int R=0;
  3803. int _rank=0;
  3804. T0* _cn=NULL;
  3805. T0* _fga=NULL;
  3806. /*IF*/if (((((T818*)C))->_formal_generic_list/*33*/)!=((void*)(NULL))) {
  3807. _rank=1;
  3808. while (!((R)||((_rank)>(/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)((((T818*)C))->_formal_generic_list/*33*/))))->_list/*4*/))))->_upper/*8*//*)*/)))) {
  3809. _fga=/*(IRF4.6item*/r681item(((T681*)((((T881*)((T881*)((((T818*)C))->_formal_generic_list/*33*/))))->_list/*4*/)),_rank)/*)*/;
  3810. /*IF*/if (r818a_keyword(C,(((T451*)((T451*)((((T59*)((T59*)_fga)))->_name/*0*/))))->_to_string/*0*/)) {
  3811. {T451*n=malloc(sizeof(*n));
  3812. *n=M451;
  3813. r451make(n,(((T451*)((T451*)((((T59*)((T59*)_fga)))->_name/*0*/))))->_to_string/*0*/,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  3814. _cn=(T0*)n;
  3815. }
  3816. {T283*n=malloc(sizeof(*n));
  3817. *n=M283;
  3818. r283make(n,_cn,_rank);
  3819. C->_last_type_formal_generic=(T0*)n;
  3820. }
  3821. R=1;
  3822. }
  3823. /*FI*/_rank=(_rank)+(1);
  3824. }
  3825. }
  3826. /*FI*/return R;
  3827. }
  3828. /*No:EIFFEL_PARSER.last_infix*/
  3829. int r818a_feature_name(T818* C){
  3830. int R=0;
  3831. /*IF*/if (r818a_prefix(C)) {
  3832. C->_last_feature_name=(((T818*)C))->_last_prefix/*125*/;
  3833. R=1;
  3834. }
  3835.  else if (r818a_infix(C)) {
  3836. C->_last_feature_name=(((T818*)C))->_last_infix/*121*/;
  3837. R=1;
  3838. }
  3839.  else if (r818a_identifier(C)) {
  3840. C->_last_feature_name=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  3841. R=1;
  3842. }
  3843. /*FI*/return R;
  3844. }
  3845. /*No:EIFFEL_PARSER.us_and*/
  3846. void r818a_feature_clause(T818* C){
  3847. T0* _comment=NULL;
  3848. T0* _clients=NULL;
  3849. T0* _feature_clause=NULL;
  3850. _clients=r818a_clients(C);
  3851. _comment=r818get_comments(C);
  3852. /*[IRF3.3clear*/((((T352*)(((T352*)(oBC818faof)))))->_upper)=(-(1));
  3853. /*]*/
  3854. while (!(!(r818a_feature_declaration(C)))) {
  3855. C->_ok=r818skip1(C,'\73');
  3856. /*IF*/if (((((T818*)C))->_last_feature_declaration/*101*/)!=((void*)(NULL))) {
  3857. r352add_last(((T352*)(oBC818faof)),(((T818*)C))->_last_feature_declaration/*101*/);
  3858. X359set_header_comment((((T818*)C))->_last_feature_declaration/*101*/,r818get_comments(C));
  3859. }
  3860. /*FI*/}
  3861. /*IF*/if (((((T352*)((T352*)(oBC818faof))))->_upper/*8*/)>=(0)) {
  3862. {T153*n=malloc(sizeof(*n));
  3863. *n=M153;
  3864. r153make(n,_clients,_comment,r352twin(((T352*)(oBC818faof))));
  3865. _feature_clause=(T0*)n;
  3866. }
  3867. r605add_feature_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_feature_clause);
  3868. }
  3869.  else if ((_comment)!=((void*)(NULL))) {
  3870. {T153*n=malloc(sizeof(*n));
  3871. *n=M153;
  3872. r153make(n,_clients,_comment,NULL);
  3873. _feature_clause=(T0*)n;
  3874. }
  3875. r605add_feature_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_feature_clause);
  3876. }
  3877. /*FI*/C->_last_keyword=NULL;
  3878. }
  3879. /*No:EIFFEL_PARSER.in_rescue*/
  3880. /*No:EIFFEL_PARSER.us_and_then*/
  3881. int r818a_manifest_constant(T818* C){
  3882. int R=0;
  3883. /*IF*/if (r818a_boolean_constant(C)) {
  3884. C->_last_manifest_constant=(((T818*)C))->_last_boolean_constant/*81*/;
  3885. R=1;
  3886. }
  3887.  else if (r818a_character_constant(C)) {
  3888. C->_last_manifest_constant=(((T818*)C))->_last_character_constant/*85*/;
  3889. R=1;
  3890. }
  3891.  else if (r818a_manifest_string(C)) {
  3892. C->_last_manifest_constant=(((T818*)C))->_last_manifest_string/*145*/;
  3893. R=1;
  3894. }
  3895.  else if (r818a_bit_constant(C)) {
  3896. C->_last_manifest_constant=(((T818*)C))->_last_bit_constant/*77*/;
  3897. R=1;
  3898. }
  3899.  else if (r818a_real_constant(C)) {
  3900. C->_last_manifest_constant=(((T818*)C))->_last_real_constant/*153*/;
  3901. R=1;
  3902. }
  3903.  else if (r818a_integer_constant(C)) {
  3904. C->_last_manifest_constant=(((T818*)C))->_last_integer_constant/*129*/;
  3905. R=1;
  3906. }
  3907. /*FI*/return R;
  3908. }
  3909. /*No:EIFFEL_PARSER.last_instruction*/
  3910. int r818a_bit_constant(T818* C){
  3911. int R=0;
  3912. int _state=0;
  3913. int _c=0;
  3914. int _l=0;
  3915. /*IF*/if ((((((T818*)C))->_cc/*24*/)==('0'))||(((((T818*)C))->_cc/*24*/)==('1'))) {
  3916. _l=(((T818*)C))->_line/*16*/;
  3917. _c=(((T818*)C))->_column/*12*/;
  3918. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC818tmp_string)))))->_count)=(0);
  3919. /*]*/
  3920. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  3921. while (!((_state)>(0))) {
  3922. r818next_char(C);
  3923. {int z1=(((T818*)C))->_cc/*24*/;
  3924.  
  3925. if(((48<=z1)&&(z1<=49))){
  3926. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  3927. }
  3928.  else 
  3929. if((66==z1)||(98==z1)){
  3930. {T940*n=malloc(sizeof(*n));
  3931. *n=M940;
  3932. r940make(n,r818pos(_l,_c),r7twin(((T7*)(oBC818tmp_string))));
  3933. C->_last_bit_constant=(T0*)n;
  3934. }
  3935. r818next_char(C);
  3936. r818skip_comments(C);
  3937. _state=1;
  3938. R=1;
  3939. }
  3940.  else{r818go_back_at(C,_l,_c);
  3941. _state=2;
  3942. }}
  3943. }
  3944. }
  3945. /*FI*/return R;
  3946. }
  3947. T0*oBC818faof=NULL;
  3948. /*No:EIFFEL_PARSER.fz_jvm_invokestatic*/
  3949. int r818a_index_clause(T818* C){
  3950. int R=0;
  3951. T0* _index_clause=NULL;
  3952. /*IF*/if (r818a_identifier(C)) {
  3953. R=1;
  3954. /*IF*/if (r818skip1(C,'\72')) {
  3955. {T782*n=malloc(sizeof(*n));
  3956. *n=M782;
  3957. /*[IRF3.3make*/((((T782*)(n)))->_index)=(r511to_string(((T511*)(oBC818tmp_name))));
  3958. /*]*/
  3959. _index_clause=(T0*)n;
  3960. }
  3961. /*IF*/if (r818a_index_value(C)) {
  3962. r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_index_value/*137*/);
  3963. }
  3964. else {
  3965. r818fcp(C,((T0*)ms141_818));
  3966. }
  3967. /*FI*/}
  3968. else {
  3969. {T782*n=malloc(sizeof(*n));
  3970. *n=M782;
  3971. /*[IRF3.3make*/((((T782*)(n)))->_index)=(NULL);
  3972. /*]*/
  3973. _index_clause=(T0*)n;
  3974. }
  3975. r782add_index_value(((T782*)_index_clause),r511to_simple_feature_name(((T511*)(oBC818tmp_name))));
  3976. }
  3977. /*FI*/}
  3978.  else if (r818a_manifest_constant(C)) {
  3979. R=1;
  3980. {T782*n=malloc(sizeof(*n));
  3981. *n=M782;
  3982. /*[IRF3.3make*/((((T782*)(n)))->_index)=(NULL);
  3983. /*]*/
  3984. _index_clause=(T0*)n;
  3985. }
  3986. r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_manifest_constant/*141*/);
  3987. }
  3988. /*FI*//*IF*/if (R) {
  3989. while (!(!(r818skip1(C,'\54')))) {
  3990. /*IF*/if (r818a_index_value(C)) {
  3991. r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_index_value/*137*/);
  3992. }
  3993. else {
  3994. r818fcp(C,((T0*)ms141_818));
  3995. }
  3996. /*FI*/}
  3997. r605add_index_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_index_clause);
  3998. }
  3999. /*FI*/return R;
  4000. }
  4001. /*No:EIFFEL_PARSER.line*/
  4002. /*No:EIFFEL_PARSER.make*/
  4003. /*No:EIFFEL_PARSER.last_index_value*/
  4004. /*No:EIFFEL_PARSER.show_nb_warnings*/
  4005. /*No:EIFFEL_PARSER.fz_rescue*/
  4006. int r818a_infix(T818* C){
  4007. int R=0;
  4008. T0* _sp=NULL;
  4009. /*IF*/if (r818a_keyword(C,((T0*)ms23_470))) {
  4010. R=1;
  4011. {T627*n=malloc(sizeof(*n));
  4012. *n=M627;
  4013. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  4014. _sp=(T0*)n;
  4015. }
  4016. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) {
  4017. r818next_char(C);
  4018. }
  4019. else {
  4020. /*[IRF3.6wcp*/{T818* C1=C;
  4021. T0* b1=((T0*)ms96_818);
  4022. r818warning(r818current_position(C1),b1);
  4023. }/*]*/
  4024. }
  4025. /*FI*//*IF*/if (r818a_binary(C,_sp)) {
  4026. C->_last_infix=(((T818*)C))->_last_binary/*73*/;
  4027. }
  4028.  else if (r818a_free_operator(C)) {
  4029. C->_last_infix=r511to_infix_name(_sp);
  4030. }
  4031. else {
  4032. r818fcp(C,((T0*)ms97_818));
  4033. }
  4034. /*FI*//*IF*/if (!(r818skip1(C,'\42'))) {
  4035. /*[IRF3.6wcp*/{T818* C1=C;
  4036. T0* b1=((T0*)ms98_818);
  4037. r818warning(r818current_position(C1),b1);
  4038. }/*]*/
  4039. }
  4040. /*FI*/}
  4041. /*FI*/return R;
  4042. }
  4043. T0* r818a_actuals(T818* C){
  4044. T0* R=NULL;
  4045. T0* _args=NULL;
  4046. /*IF*/if (r818skip1(C,'\50')) {
  4047. while (!(!(r818a_actual(C)))) {
  4048. /*IF*/if ((_args)==((void*)(NULL))) {
  4049. _args=se_ma96(1,(((T818*)C))->_last_expression/*97*/);
  4050. }
  4051. else {
  4052. X96add_last(_args,(((T818*)C))->_last_expression/*97*/);
  4053. }
  4054. /*FI*//*IF*/if ((!(r818skip1(C,'\54')))&&(((((T818*)C))->_cc/*24*/)!=('\51'))) {
  4055. /*[IRF3.6wcp*/{T818* C1=C;
  4056. T0* b1=((T0*)ms143_818);
  4057. r818warning(r818current_position(C1),b1);
  4058. }/*]*/
  4059. }
  4060. /*FI*/}
  4061. /*IF*/if ((_args)==((void*)(NULL))) {
  4062. /*[IRF3.6wcp*/{T818* C1=C;
  4063. T0* b1=((T0*)ms31_818);
  4064. r818warning(r818current_position(C1),b1);
  4065. }/*]*/
  4066. }
  4067. else {
  4068. {T431*n=malloc(sizeof(*n));
  4069. *n=M431;
  4070. /*[IRF3.3make*/((((T431*)(n)))->_list)=(_args);
  4071. /*]*/
  4072. R=(T0*)n;
  4073. }
  4074. }
  4075. /*FI*//*IF*/if (!(r818skip1(C,'\51'))) {
  4076. r818fcp(C,((T0*)ms32_818));
  4077. }
  4078. /*FI*/}
  4079. /*FI*/return R;
  4080. }
  4081. /*No:EIFFEL_PARSER.us_pointer*/
  4082. /*No:EIFFEL_PARSER.fz_iinaiv*/
  4083. int r818a_actual(T818* C){
  4084. int R=0;
  4085. /*IF*/if (r818skip1(C,'\44')) {
  4086. /*IF*/if (r818a_identifier(C)) {
  4087. /*IF*/if (((r818a_result(C))||(r818a_void(C)))||(r818a_current(C))) {
  4088. r683add_position(X662start_position((((T818*)C))->_last_expression/*97*/));
  4089. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms155_818);
  4090. r683fatal_error(((T683*)(oBC364eh)),b1);
  4091. }/*]*/
  4092. }
  4093. else {
  4094. {T708*n=malloc(sizeof(*n));
  4095. *n=M708;
  4096. /*[IRF3.3make*/((((T708*)(n)))->_feature_name)=(r511to_simple_feature_name(((T511*)(oBC818tmp_name))));
  4097. /*]*/
  4098. C->_last_expression=(T0*)n;
  4099. }
  4100. R=1;
  4101. }
  4102. /*FI*/}
  4103. else {
  4104. r818fcp(C,((T0*)ms155_818));
  4105. }
  4106. /*FI*/}
  4107.  else if (r818a_expression(C)) {
  4108. R=1;
  4109. }
  4110. /*FI*/return R;
  4111. }
  4112. /*No:EIFFEL_PARSER.us_string*/
  4113. /*No:EIFFEL_PARSER.local_vars*/
  4114. void r818a_base_class_name1(T818* C){
  4115. T0* _ccn=NULL;
  4116. int _do_warning=0;
  4117. int _state=0;
  4118. _ccn=(((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_base_class_name/*24*/;
  4119. /*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
  4120. r627set_line_column(((T627*)((((T451*)((T451*)_ccn)))->_start_position/*4*/)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  4121. r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  4122. /*IF*/if ((((unsigned)((((T818*)C))->_cc/*24*/))>=((unsigned)('a')))) {
  4123. _do_warning=1;
  4124. C->_cc=r3to_upper((((T818*)C))->_cc/*24*/);
  4125. }
  4126. /*FI*//*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  4127. r7extend(((T7*)(oBC511tmp_string)),b1);
  4128. }/*]*/
  4129. while (!((_state)>(0))) {
  4130. r818next_char(C);
  4131. {int z1=(((T818*)C))->_cc/*24*/;
  4132.  
  4133. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
  4134. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  4135. r7extend(((T7*)(oBC511tmp_string)),b1);
  4136. }/*]*/
  4137. }
  4138.  else 
  4139. if(((97<=z1)&&(z1<=122))){
  4140. _do_warning=1;
  4141. /*[IRF3.6extend*/{char b1=r3to_upper((((T818*)C))->_cc/*24*/);
  4142. r7extend(((T7*)(oBC511tmp_string)),b1);
  4143. }/*]*/
  4144. }
  4145.  else{_state=1;
  4146. }}
  4147. }
  4148. r818skip_comments(C);
  4149. /*IF*/if (r511isa_keyword()) {
  4150. r683add_position((((T451*)((T451*)_ccn)))->_start_position/*4*/);
  4151. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms154_818);
  4152. r683fatal_error(((T683*)(oBC364eh)),b1);
  4153. }/*]*/
  4154. }
  4155. /*FI*//*IF*/if (_do_warning) {
  4156. r818warning((((T451*)((T451*)_ccn)))->_start_position/*4*/,((T0*)ms153_818));
  4157. }
  4158. /*FI*/r451identify(((T451*)_ccn),r511to_string(((T511*)(oBC818tmp_name))));
  4159. }
  4160. else {
  4161. r818fcp(C,((T0*)ms154_818));
  4162. }
  4163. /*FI*//*IF*/if (r52fast_has(((T52*)(oBC818forbidden_class)),(((T451*)((T451*)_ccn)))->_to_string/*0*/)) {
  4164. r683add_position((((T451*)((T451*)_ccn)))->_start_position/*4*/);
  4165. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms25_818);
  4166. r683fatal_error(((T683*)(oBC364eh)),b1);
  4167. }/*]*/
  4168. }
  4169. /*FI*/}
  4170. int r818a_strip(T818* C){
  4171. int R=0;
  4172. T0* _sp=NULL;
  4173. /*IF*/if (r818a_keyword(C,((T0*)ms45_470))) {
  4174. {T627*n=malloc(sizeof(*n));
  4175. *n=M627;
  4176. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  4177. _sp=(T0*)n;
  4178. }
  4179. /*IF*/if (r818skip1(C,'\50')) {
  4180. C->_ok=r818a_feature_list(C);
  4181. {T420*n=malloc(sizeof(*n));
  4182. *n=M420;
  4183. r420make(n,_sp,(((T818*)C))->_last_feature_list/*105*/);
  4184. C->_last_expression=(T0*)n;
  4185. }
  4186. /*IF*/if (!(r818skip1(C,'\51'))) {
  4187. r818fcp(C,((T0*)ms123_818));
  4188. }
  4189. /*FI*/R=1;
  4190. }
  4191. else {
  4192. r818fcp(C,((T0*)ms124_818));
  4193. }
  4194. /*FI*/}
  4195. /*FI*/return R;
  4196. }
  4197. /*No:EIFFEL_PARSER.fz_external*/
  4198. T0* r818a_compound1(T818* C,T0* a1){
  4199. T0* R=NULL;
  4200. T0* _instruction=NULL;
  4201. T0* _list=NULL;
  4202. T0* _hc=NULL;
  4203. _hc=r818get_comments(C);
  4204. while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
  4205. /*[IRF3.6wcp*/{T818* C1=C;
  4206. T0* b1=((T0*)ms68_470);
  4207. r818warning(r818current_position(C1),b1);
  4208. }/*]*/
  4209. C->_ok=r818skip1(C,'\73');
  4210. }
  4211. while (!((!(r818a_instruction(C)))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  4212. _instruction=(((T818*)C))->_last_instruction/*133*/;
  4213. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\50')) {
  4214. /*[IRF3.6wcp*/{T818* C1=C;
  4215. T0* b1=((T0*)ms144_818);
  4216. r818warning(r818current_position(C1),b1);
  4217. }/*]*/
  4218. }
  4219. /*FI*/C->_ok=r818skip1(C,'\73');
  4220. while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
  4221. /*[IRF3.6wcp*/{T818* C1=C;
  4222. T0* b1=((T0*)ms68_470);
  4223. r818warning(r818current_position(C1),b1);
  4224. }/*]*/
  4225. C->_ok=r818skip1(C,'\73');
  4226. }
  4227. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  4228. /*IF*/if ((_list)==((void*)(NULL))) {
  4229. _list=se_ma419(1,X465add_comment(_instruction,r818get_comments(C)));
  4230. }
  4231. else {
  4232. r419add_last(((T419*)_list),X465add_comment(_instruction,r818get_comments(C)));
  4233. }
  4234. /*FI*/}
  4235. /*FI*/}
  4236. /*IF*/if (((_hc)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) {
  4237. {T592*n=malloc(sizeof(*n));
  4238. *n=M592;
  4239. r592make(n,_hc,_list);
  4240. R=(T0*)n;
  4241. }
  4242. }
  4243. /*FI*/return R;
  4244. }
  4245. /*No:EIFFEL_PARSER.fz_prefix*/
  4246. /*No:EIFFEL_PARSER.fz_all*/
  4247. /*No:EIFFEL_PARSER.column*/
  4248. int r818a_loop(T818* C){
  4249. int R=0;
  4250. T0* _al=NULL;
  4251. T0* _hc=NULL;
  4252. T0* _lb=NULL;
  4253. T0* _ue=NULL;
  4254. T0* _vc=NULL;
  4255. T0* _ic=NULL;
  4256. T0* _i=NULL;
  4257. T0* _e_loop=NULL;
  4258. int _c2=0;
  4259. int _l2=0;
  4260. int _c1=0;
  4261. int _l1=0;
  4262. /*IF*/if (r818a_keyword(C,((T0*)ms19_470))) {
  4263. R=1;
  4264. _l1=(((T818*)C))->_start_line/*169*/;
  4265. _c1=(((T818*)C))->_start_column/*165*/;
  4266. _i=r818a_compound1(C,((T0*)ms102_818));
  4267. /*IF*/if (r818a_keyword(C,((T0*)ms26_470))) {
  4268. _l2=(((T818*)C))->_start_line/*169*/;
  4269. _c2=(((T818*)C))->_start_column/*165*/;
  4270. _hc=r818get_comments(C);
  4271. _al=r818a_assertion(C);
  4272. /*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) {
  4273. {T213*n=malloc(sizeof(*n));
  4274. *n=M213;
  4275. r213make(n,r818pos(_l2,_c2),_hc,_al);
  4276. _ic=(T0*)n;
  4277. }
  4278. }
  4279. /*FI*/}
  4280. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms51_470))) {
  4281. /*IF*/if ((r818a_tag_mark(C))&&(r818a_expression(C))) {
  4282. {T158*n=malloc(sizeof(*n));
  4283. *n=M158;
  4284. r158make(n,(((T818*)C))->_last_tag_mark/*161*/,(((T818*)C))->_last_expression/*97*/,r818get_comments(C));
  4285. _vc=(T0*)n;
  4286. }
  4287. }
  4288.  else if (r818a_expression(C)) {
  4289. {T145*n=malloc(sizeof(*n));
  4290. *n=M145;
  4291. r145make(n,(((T818*)C))->_last_expression/*97*/,r818get_comments(C));
  4292. _vc=(T0*)n;
  4293. }
  4294. }
  4295. else {
  4296. /*[IRF3.6wcp*/{T818* C1=C;
  4297. T0* b1=((T0*)ms103_818);
  4298. r818warning(r818current_position(C1),b1);
  4299. }/*]*/
  4300. }
  4301. /*FI*/}
  4302. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms50_470))) {
  4303. /*IF*/if (r818a_expression(C)) {
  4304. _ue=X662add_comment((((T818*)C))->_last_expression/*97*/,r818get_comments(C));
  4305. }
  4306. else {
  4307. r818fcp(C,((T0*)ms104_818));
  4308. _ue=(((T818*)C))->_last_expression/*97*/;
  4309. }
  4310. /*FI*/}
  4311. else {
  4312. r818fcp(C,((T0*)ms105_818));
  4313. _ue=(((T818*)C))->_last_expression/*97*/;
  4314. }
  4315. /*FI*//*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
  4316. /*[IRF3.6wcp*/{T818* C1=C;
  4317. T0* b1=((T0*)ms68_470);
  4318. r818warning(r818current_position(C1),b1);
  4319. }/*]*/
  4320. C->_ok=r818skip1(C,'\73');
  4321. }
  4322. /*FI*//*IF*/if (!(r818a_keyword(C,((T0*)ms32_470)))) {
  4323. /*[IRF3.6wcp*/{T818* C1=C;
  4324. T0* b1=((T0*)ms106_818);
  4325. r818warning(r818current_position(C1),b1);
  4326. }/*]*/
  4327. }
  4328. /*FI*/_lb=r818a_compound2(C,((T0*)ms107_818),((T0*)ms12_470));
  4329. {T880*n=malloc(sizeof(*n));
  4330. *n=M880;
  4331. r880make(n,r818pos(_l1,_c1),_i,_ic,_vc,_ue,_lb);
  4332. _e_loop=(T0*)n;
  4333. }
  4334. C->_last_instruction=_e_loop;
  4335. }
  4336. /*FI*/return R;
  4337. }
  4338. /*No:EIFFEL_PARSER.fz_feature*/
  4339. /*No:EIFFEL_PARSER.fz_true*/
  4340. int r818a_local_variable(T818* C){
  4341. int R=0;
  4342. int _rank=0;
  4343. /*IF*/if (((((T818*)C))->_local_vars/*49*/)!=((void*)(NULL))) {
  4344. _rank=r620rank_of(((T620*)((((T818*)C))->_local_vars/*49*/)),r511to_string(((T511*)(oBC818tmp_name))));
  4345. /*IF*/if ((_rank)>(0)) {
  4346. C->_last_expression=r511to_local_name2(((T511*)(oBC818tmp_name)),(((T818*)C))->_local_vars/*49*/,_rank);
  4347. R=1;
  4348. }
  4349. /*FI*/}
  4350. /*FI*/return R;
  4351. }
  4352. /*No:EIFFEL_PARSER.start_column*/
  4353. /*No:EIFFEL_PARSER.us_ge*/
  4354. /*No:EIFFEL_PARSER.us_neq*/
  4355. int r818skip1unless2(T818* C,char a1,char a2){
  4356. int R=0;
  4357. C->_start_line=(((T818*)C))->_line/*16*/;
  4358. C->_start_column=(((T818*)C))->_column/*12*/;
  4359. /*IF*/if (((((T818*)C))->_cc/*24*/)==(a1)) {
  4360. r818next_char(C);
  4361. /*IF*/if (((((T818*)C))->_cc/*24*/)==(a2)) {
  4362. r818prev_char(C);
  4363. }
  4364. else {
  4365. R=1;
  4366. r818skip_comments(C);
  4367. }
  4368. /*FI*/}
  4369. /*FI*/return R;
  4370. }
  4371. /*No:EIFFEL_PARSER.fz_if*/
  4372. T0* r818a_compound2(T818* C,T0* a1,T0* a2){
  4373. T0* R=NULL;
  4374. T0* _instruction=NULL;
  4375. T0* _list=NULL;
  4376. T0* _hc=NULL;
  4377. _hc=r818get_comments(C);
  4378. while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
  4379. /*[IRF3.6wcp*/{T818* C1=C;
  4380. T0* b1=((T0*)ms68_470);
  4381. r818warning(r818current_position(C1),b1);
  4382. }/*]*/
  4383. C->_ok=r818skip1(C,'\73');
  4384. }
  4385. while (!((!(r818a_instruction(C)))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  4386. _instruction=(((T818*)C))->_last_instruction/*133*/;
  4387. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\50')) {
  4388. /*[IRF3.6wcp*/{T818* C1=C;
  4389. T0* b1=((T0*)ms144_818);
  4390. r818warning(r818current_position(C1),b1);
  4391. }/*]*/
  4392. }
  4393. /*FI*/C->_ok=r818skip1(C,'\73');
  4394. while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
  4395. /*[IRF3.6wcp*/{T818* C1=C;
  4396. T0* b1=((T0*)ms68_470);
  4397. r818warning(r818current_position(C1),b1);
  4398. }/*]*/
  4399. C->_ok=r818skip1(C,'\73');
  4400. }
  4401. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  4402. /*IF*/if ((_list)==((void*)(NULL))) {
  4403. _list=se_ma419(1,X465add_comment(_instruction,r818get_comments(C)));
  4404. }
  4405. else {
  4406. r419add_last(((T419*)_list),X465add_comment(_instruction,r818get_comments(C)));
  4407. }
  4408. /*FI*/}
  4409. /*FI*/}
  4410. /*IF*/if (!(r818a_keyword(C,a2))) {
  4411. /*[IRF3.6append*/{T0* b1=((T0*)ms57_818);
  4412. r7append(((T7*)(oBC683explanation)),b1);
  4413. }/*]*/
  4414. /*[IRF3.6append*/{T0* b1=a1;
  4415. r7append(((T7*)(oBC683explanation)),b1);
  4416. }/*]*/
  4417. /*[IRF3.6append*/{T0* b1=((T0*)ms58_818);
  4418. r7append(((T7*)(oBC683explanation)),b1);
  4419. }/*]*/
  4420. /*[IRF3.6append*/{T0* b1=a2;
  4421. r7append(((T7*)(oBC683explanation)),b1);
  4422. }/*]*/
  4423. r818fcp(C,((T0*)ms59_818));
  4424. }
  4425. /*FI*//*IF*/if (((_hc)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) {
  4426. {T592*n=malloc(sizeof(*n));
  4427. *n=M592;
  4428. r592make(n,_hc,_list);
  4429. R=(T0*)n;
  4430. }
  4431. }
  4432. /*FI*/return R;
  4433. }
  4434. int r818a_rename_pair(T818* C){
  4435. int R=0;
  4436. T0* _rename_pair=NULL;
  4437. T0* _name1=NULL;
  4438. /*IF*/if (r818a_feature_name(C)) {
  4439. _name1=(((T818*)C))->_last_feature_name/*109*/;
  4440. /*IF*/if (r818a_keyword(C,((T0*)ms3_470))) {
  4441. /*IF*/if (r818a_feature_name(C)) {
  4442. R=1;
  4443. {T498*n=malloc(sizeof(*n));
  4444. *n=M498;
  4445. r498make(n,_name1,(((T818*)C))->_last_feature_name/*109*/);
  4446. _rename_pair=(T0*)n;
  4447. }
  4448. r877add_rename(((T877*)((((T818*)C))->_last_parent/*149*/)),_rename_pair);
  4449. }
  4450. else {
  4451. r818fcp(C,((T0*)ms113_818));
  4452. }
  4453. /*FI*/}
  4454. else {
  4455. /*[IRF3.6go_back*/{T818* C1=C;
  4456. T0* b1=X776start_position(_name1);
  4457. r818go_back_at(C1,/*(IRF4.6line*/((((T627*)((T627*)b1)))->_mem_line_column/*4*/)/(1000)/*)*/,/*(IRF4.6column*/((((T627*)((T627*)b1)))->_mem_line_column/*4*/)%(1000)/*)*/);
  4458. }/*]*/
  4459. }
  4460. /*FI*/}
  4461. /*FI*/return R;
  4462. }
  4463. /*No:EIFFEL_PARSER.us_slash*/
  4464. /*No:EIFFEL_PARSER.fz_alias*/
  4465. /*No:EIFFEL_PARSER.fz_debug*/
  4466. int r818a_keyword(T818* C,T0* a1){
  4467. int R=0;
  4468. int _keyword_count=0;
  4469. int _i=0;
  4470. _keyword_count=(((T7*)((T7*)a1)))->_count/*4*/;
  4471. C->_start_line=(((T818*)C))->_line/*16*/;
  4472. C->_start_column=(((T818*)C))->_column/*12*/;
  4473. while (!(((_i)==(_keyword_count))||(!(r3same_as((((T818*)C))->_cc/*24*/,/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[((_i)+(1))-(1)]/*)*/))))) {
  4474. _i=(_i)+(1);
  4475. r818next_char(C);
  4476. }
  4477. /*IF*/if ((_i)==(_keyword_count)) {
  4478. {int z1=(((T818*)C))->_cc/*24*/;
  4479.  
  4480. if(((9<=z1)&&(z1<=10))||(32==z1)||(45==z1)){
  4481. R=1;
  4482. C->_last_keyword=a1;
  4483. r818skip_comments(C);
  4484. }
  4485.  else 
  4486. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)||((97<=z1)&&(z1<=122))){
  4487. while (!((_i)==(0))) {
  4488. r818prev_char(C);
  4489. _i=(_i)-(1);
  4490. }
  4491. }
  4492.  else{R=1;
  4493. C->_last_keyword=a1;
  4494. }}
  4495. }
  4496. else {
  4497. while (!((_i)==(0))) {
  4498. r818prev_char(C);
  4499. _i=(_i)-(1);
  4500. }
  4501. }
  4502. /*FI*/return R;
  4503. }
  4504. /*No:EIFFEL_PARSER.us_character*/
  4505. /*No:EIFFEL_PARSER.us_le*/
  4506. /*No:EIFFEL_PARSER.fz_from*/
  4507. /*No:EIFFEL_PARSER.last_keyword*/
  4508. /*No:EIFFEL_PARSER.fz_unique*/
  4509. /*No:EIFFEL_PARSER.fz_loop*/
  4510. /*No:EIFFEL_PARSER.em1*/
  4511. /*No:EIFFEL_PARSER.fz_do*/
  4512. int r818a_unary(T818* C){
  4513. int R=0;
  4514. /*IF*/if (r818a_keyword(C,((T0*)ms40_473))) {
  4515. {T406*n=malloc(sizeof(*n));
  4516. *n=M406;
  4517. r406make(n,((T0*)ms40_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  4518. C->_last_prefix=(T0*)n;
  4519. }
  4520. R=1;
  4521. }
  4522.  else if (r818skip1(C,'\53')) {
  4523. {T406*n=malloc(sizeof(*n));
  4524. *n=M406;
  4525. r406make(n,((T0*)ms43_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  4526. C->_last_prefix=(T0*)n;
  4527. }
  4528. R=1;
  4529. }
  4530.  else if (r818skip1(C,'\55')) {
  4531. {T406*n=malloc(sizeof(*n));
  4532. *n=M406;
  4533. r406make(n,((T0*)ms37_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  4534. C->_last_prefix=(T0*)n;
  4535. }
  4536. R=1;
  4537. }
  4538. /*FI*/return R;
  4539. }
  4540. /*No:EIFFEL_PARSER.em2*/
  4541. /*No:EIFFEL_PARSER.last_feature_declaration*/
  4542. /*No:EIFFEL_PARSER.em3*/
  4543. /*No:EIFFEL_PARSER.fz_c_inlinewithoutcurrent*/
  4544. /*No:EIFFEL_PARSER.fz_obsolete*/
  4545. /*No:EIFFEL_PARSER.em4*/
  4546. /*No:EIFFEL_PARSER.fz_se*/
  4547. void r818go_back_at(T818* C,int a1,int a2){
  4548. C->_line=a1;
  4549. C->_column=a2;
  4550. C->_current_line=r676item((((T818*)C))->_line/*16*/);
  4551. /*IF*/if (((((T818*)C))->_column/*12*/)==(((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)+(1))) {
  4552. C->_cc='\n';
  4553. }
  4554.  else if (((((T818*)C))->_column/*12*/)==(0)) {
  4555. C->_cc='\0';
  4556. }
  4557. else {
  4558. C->_cc=/*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[((((T818*)C))->_column/*12*/)-(1)]/*)*/;
  4559. }
  4560. /*FI*/}
  4561. void r818a_ascii_code(T818* C){
  4562. int _counter=0;
  4563. r818next_char(C);
  4564. _counter=0;
  4565. C->_last_ascii_code=0;
  4566. while (!(((_counter)>(3))||(((((T818*)C))->_cc/*24*/)==('\57')))) {
  4567. {int z1=(((T818*)C))->_cc/*24*/;
  4568.  
  4569. if(((48<=z1)&&(z1<=57))){
  4570. C->_last_ascii_code=(((((T818*)C))->_last_ascii_code/*61*/)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  4571. }
  4572.  else{r818fcp(C,((T0*)ms21_818));
  4573. }}
  4574. _counter=(_counter)+(1);
  4575. r818next_char(C);
  4576. }
  4577. /*IF*/if ((_counter)==(0)) {
  4578. r818fcp(C,((T0*)ms22_818));
  4579. }
  4580.  else if ((_counter)>(3)) {
  4581. r818fcp(C,((T0*)ms23_818));
  4582. }
  4583. else {
  4584. }
  4585. /*FI*/}
  4586. /*No:EIFFEL_PARSER.fz_as*/
  4587. /*No:EIFFEL_PARSER.em5*/
  4588. /*No:EIFFEL_PARSER.fz_false*/
  4589. /*No:EIFFEL_PARSER.us_bit*/
  4590. /*No:EIFFEL_PARSER.em6*/
  4591. int r818end_of_input(T818* C){
  4592. int R=0;
  4593. R=((((T818*)C))->_cc/*24*/)==('\0');
  4594. return R;
  4595. }
  4596. int r818a_current(T818* C){
  4597. int R=0;
  4598. /*IF*/if (r511is_current()) {
  4599. C->_last_expression=r511to_e_current(((T511*)(oBC818tmp_name)));
  4600. R=1;
  4601. }
  4602. /*FI*/return R;
  4603. }
  4604. void r818a_parent_list(T818* C,T0* a1,T0* a2){
  4605. T0* _list=NULL;
  4606. while (!(!(r818a_parent(C)))) {
  4607. /*IF*/if ((_list)==((void*)(NULL))) {
  4608. _list=se_ma26(1,(((T818*)C))->_last_parent/*149*/);
  4609. }
  4610. else {
  4611. r26add_last(((T26*)_list),(((T818*)C))->_last_parent/*149*/);
  4612. }
  4613. /*FI*/C->_ok=r818skip1(C,'\73');
  4614. /*[IRF3.3set_comment*/((((T877*)(((T877*)((((T818*)C))->_last_parent/*149*/)))))->_comment)=(r818get_comments(C));
  4615. /*]*/
  4616. }
  4617. /*IF*/if (((a2)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) {
  4618. /*IF*/if ((_list)==((void*)(NULL))) {
  4619. /*IF*/if (((((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_heading_comment2/*32*/)==((void*)(NULL))) {
  4620. /*[IRF3.3set_heading_comment2*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment2)=(a2);
  4621. /*]*/
  4622. }
  4623. else {
  4624. r393append(((T393*)((((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_heading_comment2/*32*/)),a2);
  4625. }
  4626. /*FI*/}
  4627. else {
  4628. r605set_parent_list(((T605*)((((T818*)C))->_last_base_class/*65*/)),a1,a2,_list);
  4629. }
  4630. /*FI*/}
  4631. /*FI*/}
  4632. /*No:EIFFEL_PARSER.em7*/
  4633. /*No:EIFFEL_PARSER.fz_jvm_invokevirtual*/
  4634. void r818a_select_list(T818* C){
  4635. /*IF*/if (r818a_feature_list(C)) {
  4636. r877set_select(((T877*)((((T818*)C))->_last_parent/*149*/)),(((T818*)C))->_last_feature_list/*105*/);
  4637. }
  4638. /*FI*/}
  4639. void r818err_exp(T0* a1,T0* a2){
  4640. T0* _msg=NULL;
  4641. {T7*n=malloc(sizeof(*n));
  4642. *n=M7;
  4643. r7make(n,0);
  4644. _msg=(T0*)n;
  4645. }
  4646. r7append(((T7*)_msg),((T0*)ms11_818));
  4647. r7append(((T7*)_msg),a2);
  4648. r7append(((T7*)_msg),((T0*)ms12_818));
  4649. r683add_position(a1);
  4650. /*[IRF3.6fatal_error*/{T0* b1=_msg;
  4651. r683fatal_error(((T683*)(oBC364eh)),b1);
  4652. }/*]*/
  4653. }
  4654. /*No:EIFFEL_PARSER.em8*/
  4655. /*No:EIFFEL_PARSER.last_boolean_constant*/
  4656. /*No:EIFFEL_PARSER.em9*/
  4657. T0* r818current_position(T818* C){
  4658. T0* R=NULL;
  4659. {T627*n=malloc(sizeof(*n));
  4660. *n=M627;
  4661. r627make(n,(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  4662. R=(T0*)n;
  4663. }
  4664. return R;
  4665. }
  4666. /*No:EIFFEL_PARSER.last_tag_mark*/
  4667. /*No:EIFFEL_PARSER.us_boolean*/
  4668. /*No:EIFFEL_PARSER.last_feature_name*/
  4669. /*No:EIFFEL_PARSER.us_eq*/
  4670. int r818a_free_operator(T818* C){
  4671. int R=0;
  4672. /*IF*/if ((((((((T818*)C))->_cc/*24*/)==('\100'))||(((((T818*)C))->_cc/*24*/)==('\43')))||(((((T818*)C))->_cc/*24*/)==('\174')))||(((((T818*)C))->_cc/*24*/)==('\46'))) {
  4673. R=1;
  4674. r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  4675. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  4676. r7extend(((T7*)(oBC511tmp_string)),b1);
  4677. }/*]*/
  4678. r818next_char(C);
  4679. while (!((((((((T818*)C))->_cc/*24*/)==('\n'))||(((((T818*)C))->_cc/*24*/)==('\40')))||(((((T818*)C))->_cc/*24*/)==('\11')))||(((((T818*)C))->_cc/*24*/)==('\42')))) {
  4680. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  4681. r7extend(((T7*)(oBC511tmp_string)),b1);
  4682. }/*]*/
  4683. r818next_char(C);
  4684. }
  4685. r818skip_comments(C);
  4686. }
  4687. /*FI*/return R;
  4688. }
  4689. /*No:EIFFEL_PARSER.function_type*/
  4690. int r818a_then_part(T818* C,T0* a1){
  4691. int R=0;
  4692. T0* _expression=NULL;
  4693. /*IF*/if (r818a_expression(C)) {
  4694. R=1;
  4695. _expression=X662add_comment((((T818*)C))->_last_expression/*97*/,r818get_comments(C));
  4696. /*IF*/if (!(r818a_keyword(C,((T0*)ms46_470)))) {
  4697. /*[IRF3.6wcp*/{T818* C1=C;
  4698. T0* b1=((T0*)ms127_818);
  4699. r818warning(r818current_position(C1),b1);
  4700. }/*]*/
  4701. }
  4702. /*FI*/r530add_if_then(((T530*)a1),_expression,r818a_compound1(C,((T0*)ms128_818)));
  4703. }
  4704. /*FI*/return R;
  4705. }
  4706. /*No:EIFFEL_PARSER.us_xor*/
  4707. /*No:EIFFEL_PARSER.last_integer_constant*/
  4708. /*No:EIFFEL_PARSER.in_ensure*/
  4709. /*No:EIFFEL_PARSER.fz_frozen*/
  4710. /*No:EIFFEL_PARSER.ms_numbering*/
  4711. T0* r818a_clients(T818* C){
  4712. T0* R=NULL;
  4713. int _state=0;
  4714. T0* _list=NULL;
  4715. T0* _sp=NULL;
  4716. /*IF*/if (r818skip1(C,'\173')) {
  4717. {T627*n=malloc(sizeof(*n));
  4718. *n=M627;
  4719. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  4720. _sp=(T0*)n;
  4721. }
  4722. while (!((_state)>(3))) {
  4723. {int z1=_state;
  4724.  
  4725. if((0==z1)){
  4726. /*IF*/if (r818a_base_class_name(C)) {
  4727. _list=se_ma901(1,(((T818*)C))->_last_class_name/*89*/);
  4728. _state=2;
  4729. }
  4730.  else if (r818skip1(C,'\175')) {
  4731. _state=4;
  4732. }
  4733.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  4734. /*[IRF3.6wcp*/{T818* C1=C;
  4735. T0* b1=((T0*)ms145_818);
  4736. r818warning(r818current_position(C1),b1);
  4737. }/*]*/
  4738. C->_ok=r818skip1(C,'\54');
  4739. }
  4740. else {
  4741. _state=3;
  4742. }
  4743. /*FI*/}
  4744.  else 
  4745. if((1==z1)){
  4746. /*IF*/if (r818a_base_class_name(C)) {
  4747. r901add_last(((T901*)_list),(((T818*)C))->_last_class_name/*89*/);
  4748. _state=2;
  4749. }
  4750.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  4751. /*[IRF3.6wcp*/{T818* C1=C;
  4752. T0* b1=((T0*)ms145_818);
  4753. r818warning(r818current_position(C1),b1);
  4754. }/*]*/
  4755. C->_ok=r818skip1(C,'\54');
  4756. }
  4757.  else if (((((T818*)C))->_cc/*24*/)==('\175')) {
  4758. /*[IRF3.6wcp*/{T818* C1=C;
  4759. T0* b1=((T0*)ms56_818);
  4760. r818warning(r818current_position(C1),b1);
  4761. }/*]*/
  4762. C->_ok=r818skip1(C,'\175');
  4763. _state=4;
  4764. }
  4765. else {
  4766. _state=3;
  4767. }
  4768. /*FI*/}
  4769.  else 
  4770. if((2==z1)){
  4771. /*IF*/if (r818skip1(C,'\54')) {
  4772. _state=1;
  4773. }
  4774.  else if (r818skip1(C,'\175')) {
  4775. _state=4;
  4776. }
  4777.  else if (r818a_base_class_name(C)) {
  4778. r818warning((((T451*)((T451*)((((T818*)C))->_last_class_name/*89*/))))->_start_position/*4*/,((T0*)ms143_818));
  4779. r901add_last(((T901*)_list),(((T818*)C))->_last_class_name/*89*/);
  4780. }
  4781. else {
  4782. _state=3;
  4783. }
  4784. /*FI*/}
  4785.  else{r818fcp(C,((T0*)ms149_818));
  4786. _state=4;
  4787. }}
  4788. }
  4789. {T636*n=malloc(sizeof(*n));
  4790. *n=M636;
  4791. r636make(n,_sp,_list);
  4792. R=(T0*)n;
  4793. }
  4794. }
  4795. else {
  4796. {T636*n=malloc(sizeof(*n));
  4797. *n=M636;
  4798. /*[IRF3.1omitted*//*]*/
  4799. R=(T0*)n;
  4800. }
  4801. }
  4802. /*FI*/return R;
  4803. }
  4804. int r818a_when_part(T818* C,T0* a1){
  4805. int R=0;
  4806. T0* _constant=NULL;
  4807. T0* _e_when=NULL;
  4808. int _state=0;
  4809. /*IF*/if (r818a_keyword(C,((T0*)ms52_470))) {
  4810. R=1;
  4811. {T843*n=malloc(sizeof(*n));
  4812. *n=M843;
  4813. r843make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),r818get_comments(C));
  4814. _e_when=(T0*)n;
  4815. }
  4816. while (!((_state)>(3))) {
  4817. {int z1=_state;
  4818.  
  4819. if((0==z1)){
  4820. /*IF*/if (r818a_constant(C)) {
  4821. _constant=(((T818*)C))->_last_expression/*97*/;
  4822. _state=1;
  4823. }
  4824.  else if (r818a_keyword(C,((T0*)ms46_470))) {
  4825. /*IF*/if ((_constant)!=((void*)(NULL))) {
  4826. r843add_value(((T843*)_e_when),_constant);
  4827. }
  4828. /*FI*//*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms132_818)));
  4829. /*]*/
  4830. r270add_when(((T270*)a1),_e_when);
  4831. _state=4;
  4832. }
  4833.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  4834. /*[IRF3.6wcp*/{T818* C1=C;
  4835. T0* b1=((T0*)ms145_818);
  4836. r818warning(r818current_position(C1),b1);
  4837. }/*]*/
  4838. C->_ok=r818skip1(C,'\54');
  4839. }
  4840. else {
  4841. r818fcp(C,((T0*)ms142_818));
  4842. _state=4;
  4843. }
  4844. /*FI*/}
  4845.  else 
  4846. if((1==z1)){
  4847. /*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
  4848. /*IF*/if ((_constant)!=((void*)(NULL))) {
  4849. r843add_value(((T843*)_e_when),_constant);
  4850. }
  4851. /*FI*//*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms133_818)));
  4852. /*]*/
  4853. r270add_when(((T270*)a1),_e_when);
  4854. _state=4;
  4855. }
  4856.  else if (r818skip2(C,'\56','\56')) {
  4857. _state=2;
  4858. }
  4859.  else if (r818skip1(C,'\54')) {
  4860. r843add_value(((T843*)_e_when),_constant);
  4861. _constant=NULL;
  4862. _state=0;
  4863. }
  4864. else {
  4865. r818fcp(C,((T0*)ms142_818));
  4866. _state=4;
  4867. }
  4868. /*FI*/}
  4869.  else 
  4870. if((2==z1)){
  4871. /*IF*/if (r818a_constant(C)) {
  4872. r843add_slice(((T843*)_e_when),_constant,(((T818*)C))->_last_expression/*97*/);
  4873. _constant=NULL;
  4874. _state=3;
  4875. }
  4876. else {
  4877. r818fcp(C,((T0*)ms142_818));
  4878. _state=4;
  4879. }
  4880. /*FI*/}
  4881.  else{/*IF*/if (r818skip1(C,'\54')) {
  4882. _state=0;
  4883. }
  4884.  else if (r818a_keyword(C,((T0*)ms46_470))) {
  4885. /*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms134_818)));
  4886. /*]*/
  4887. r270add_when(((T270*)a1),_e_when);
  4888. _state=4;
  4889. }
  4890.  else if (r818a_constant(C)) {
  4891. _constant=(((T818*)C))->_last_expression/*97*/;
  4892. r818warning(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms143_818));
  4893. _state=1;
  4894. }
  4895. else {
  4896. r818fcp(C,((T0*)ms142_818));
  4897. _state=4;
  4898. }
  4899. /*FI*/}}
  4900. }
  4901. }
  4902. /*FI*/return R;
  4903. }
  4904. int r818a_feature_list(T818* C){
  4905. int R=0;
  4906. int _state=0;
  4907. C->_last_feature_list=NULL;
  4908. while (!((_state)>=(3))) {
  4909. {int z1=_state;
  4910.  
  4911. if((0==z1)){
  4912. /*IF*/if (r818a_feature_name(C)) {
  4913. C->_last_feature_list=se_ma855(1,(((T818*)C))->_last_feature_name/*109*/);
  4914. R=1;
  4915. _state=1;
  4916. }
  4917.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  4918. /*[IRF3.6wcp*/{T818* C1=C;
  4919. T0* b1=((T0*)ms145_818);
  4920. r818warning(r818current_position(C1),b1);
  4921. }/*]*/
  4922. C->_ok=r818skip1(C,'\54');
  4923. }
  4924. else {
  4925. _state=3;
  4926. }
  4927. /*FI*/}
  4928.  else 
  4929. if((1==z1)){
  4930. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\54')) {
  4931. C->_ok=r818skip1(C,'\54');
  4932. _state=2;
  4933. }
  4934.  else if (r818a_feature_name(C)) {
  4935. r818warning(X776start_position((((T818*)C))->_last_feature_name/*109*/),((T0*)ms143_818));
  4936. r855add_last(((T855*)((((T818*)C))->_last_feature_list/*105*/)),(((T818*)C))->_last_feature_name/*109*/);
  4937. }
  4938. else {
  4939. _state=3;
  4940. }
  4941. /*FI*/}
  4942.  else {/*IF*/if (r818a_feature_name(C)) {
  4943. r855add_last(((T855*)((((T818*)C))->_last_feature_list/*105*/)),(((T818*)C))->_last_feature_name/*109*/);
  4944. _state=1;
  4945. }
  4946.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  4947. /*[IRF3.6wcp*/{T818* C1=C;
  4948. T0* b1=((T0*)ms150_818);
  4949. r818warning(r818current_position(C1),b1);
  4950. }/*]*/
  4951. C->_ok=r818skip1(C,'\54');
  4952. }
  4953. else {
  4954. /*[IRF3.6ecp*/{T818* C1=C;
  4955. T0* b1=((T0*)ms140_818);
  4956. r818error(r818current_position(C1),b1);
  4957. }/*]*/
  4958. _state=3;
  4959. }
  4960. /*FI*/}}
  4961. }
  4962. return R;
  4963. }
  4964. int r818a_instruction(T818* C){
  4965. int R=0;
  4966. R=(((((((r818a_check(C))||(r818a_debug(C)))||(r818a_conditional(C)))||(r818a_retry(C)))||(r818a_inspect(C)))||(r818a_loop(C)))||(r818a_creation(C)))||(r818a_assignment_or_call(C));
  4967. return R;
  4968. }
  4969. /*No:EIFFEL_PARSER.fz_is*/
  4970. /*No:EIFFEL_PARSER.fz_ensure*/
  4971. /*No:EIFFEL_PARSER.fz_indexing*/
  4972. /*No:EIFFEL_PARSER.us_not*/
  4973. int r818a_parent(T818* C){
  4974. int R=0;
  4975. /*IF*/if (r818a_class_type(C)) {
  4976. R=1;
  4977. {T877*n=malloc(sizeof(*n));
  4978. *n=M877;
  4979. r877make(n,(((T818*)C))->_last_class_type/*93*/);
  4980. C->_last_parent=(T0*)n;
  4981. }
  4982. /*IF*/if (r818a_keyword(C,((T0*)ms39_470))) {
  4983. r818a_rename_list(C);
  4984. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
  4985. /*[IRF3.6wcp*/{T818* C1=C;
  4986. T0* b1=((T0*)ms108_818);
  4987. r818warning(r818current_position(C1),b1);
  4988. }/*]*/
  4989. C->_ok=r818skip1(C,'\73');
  4990. }
  4991. /*FI*/}
  4992. /*FI*/r818a_new_export_list(C);
  4993. /*IF*/if (r818a_keyword(C,((T0*)ms48_470))) {
  4994. r818a_undefine_list(C);
  4995. }
  4996. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms38_470))) {
  4997. r818a_redefine_list(C);
  4998. }
  4999. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms43_470))) {
  5000. r818a_select_list(C);
  5001. }
  5002. /*FI*//*IF*/if (((((r818a_keyword(C,((T0*)ms39_470)))||(r818a_keyword(C,((T0*)ms15_470))))||(r818a_keyword(C,((T0*)ms48_470))))||(r818a_keyword(C,((T0*)ms38_470))))||(r818a_keyword(C,((T0*)ms43_470)))) {
  5003. r683add_position(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  5004. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms109_818);
  5005. r683fatal_error(((T683*)(oBC364eh)),b1);
  5006. }/*]*/
  5007. }
  5008. /*FI*/C->_ok=r818a_keyword(C,((T0*)ms12_470));
  5009. }
  5010. /*FI*/return R;
  5011. }
  5012. /*No:EIFFEL_PARSER.us_muls*/
  5013. /*No:EIFFEL_PARSER.last_ascii_code*/
  5014. /*No:EIFFEL_PARSER.fz_c_inlinewithcurrent*/
  5015. int r818a_prefix(T818* C){
  5016. int R=0;
  5017. /*IF*/if (r818a_keyword(C,((T0*)ms37_470))) {
  5018. R=1;
  5019. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) {
  5020. r818next_char(C);
  5021. }
  5022. else {
  5023. /*[IRF3.6wcp*/{T818* C1=C;
  5024. T0* b1=((T0*)ms110_818);
  5025. r818warning(r818current_position(C1),b1);
  5026. }/*]*/
  5027. }
  5028. /*FI*//*IF*/if (r818a_unary(C)) {
  5029. }
  5030.  else if (r818a_free_operator(C)) {
  5031. C->_last_prefix=r511to_prefix_name(((T511*)(oBC818tmp_name)));
  5032. }
  5033. else {
  5034. r818fcp(C,((T0*)ms111_818));
  5035. }
  5036. /*FI*//*IF*/if (!(r818skip1(C,'\42'))) {
  5037. /*[IRF3.6wcp*/{T818* C1=C;
  5038. T0* b1=((T0*)ms112_818);
  5039. r818warning(r818current_position(C1),b1);
  5040. }/*]*/
  5041. }
  5042. /*FI*/}
  5043. /*FI*/return R;
  5044. }
  5045. void r818error(T0* a1,T0* a2){
  5046. r683add_position(a1);
  5047. r683error(((T683*)(oBC364eh)),a2);
  5048. }
  5049. /*No:EIFFEL_PARSER.us_gt*/
  5050. /*No:EIFFEL_PARSER.fz_until*/
  5051. int r818a_e0(T818* C){
  5052. int R=0;
  5053. R=r818a_e1(C);
  5054. r818a_r1(C,(((T818*)C))->_last_expression/*97*/);
  5055. return R;
  5056. }
  5057. void r818a_class_declaration(T818* C){
  5058. T0* _al=NULL;
  5059. T0* _hc=NULL;
  5060. T0* _sp=NULL;
  5061. r818a_indexing(C);
  5062. /*IF*/if (r818a_keyword(C,((T0*)ms8_470))) {
  5063. r605set_is_deferred(((T605*)((((T818*)C))->_last_base_class/*65*/)));
  5064. }
  5065. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms14_470))) {
  5066. r605set_is_expanded(((T605*)((((T818*)C))->_last_base_class/*65*/)));
  5067. /*IF*/if (r818a_keyword(C,((T0*)ms8_470))) {
  5068. r605set_is_deferred(((T605*)((((T818*)C))->_last_base_class/*65*/)));
  5069. }
  5070. /*FI*/}
  5071. /*FI*//*[IRF3.3set_heading_comment1*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment1)=(r818get_comments(C));
  5072. /*]*/
  5073. /*IF*/if (!(r818a_keyword(C,((T0*)ms5_470)))) {
  5074. r818fcp(C,((T0*)ms50_818));
  5075. }
  5076. /*FI*/r818a_base_class_name1(C);
  5077. r818a_formal_generic_list(C);
  5078. /*IF*/if (r818a_keyword(C,((T0*)ms33_470))) {
  5079. /*IF*/if (r818a_manifest_string(C)) {
  5080. /*[IRF3.3set_obsolete_type_string*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_obsolete_type_string)=((((T818*)C))->_last_manifest_string/*145*/);
  5081. /*]*/
  5082. }
  5083. else {
  5084. r818fcp(C,((T0*)ms51_818));
  5085. }
  5086. /*FI*/}
  5087. /*FI*//*[IRF3.3set_heading_comment2*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment2)=(r818get_comments(C));
  5088. /*]*/
  5089. /*IF*/if (r818a_keyword(C,((T0*)ms24_470))) {
  5090. r818a_parent_list(C,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),r818get_comments(C));
  5091. }
  5092. /*FI*/while (!(!(r818a_keyword(C,((T0*)ms6_470))))) {
  5093. r818a_creation_clause(C,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  5094. }
  5095. while (!(!(r818a_keyword(C,((T0*)ms18_470))))) {
  5096. r818a_feature_clause(C);
  5097. }
  5098. /*IF*/if (r818a_keyword(C,((T0*)ms26_470))) {
  5099. {T627*n=malloc(sizeof(*n));
  5100. *n=M627;
  5101. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5102. _sp=(T0*)n;
  5103. }
  5104. _hc=r818get_comments(C);
  5105. _al=r818a_assertion(C);
  5106. r605set_invariant(((T605*)((((T818*)C))->_last_base_class/*65*/)),_sp,_hc,_al);
  5107. }
  5108. /*FI*//*IF*/if ((r818a_keyword(C,((T0*)ms12_470)))||(((((T818*)C))->_last_keyword/*113*/)==((void*)(((T0*)ms12_470))))) {
  5109. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
  5110. /*[IRF3.6wcp*/{T818* C1=C;
  5111. T0* b1=((T0*)ms68_470);
  5112. r818warning(r818current_position(C1),b1);
  5113. }/*]*/
  5114. C->_ok=r818skip1(C,'\73');
  5115. }
  5116. /*FI*//*[IRF3.3set_end_comment*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_end_comment)=(r818get_comments(C));
  5117. /*]*/
  5118. /*IF*/if (((((T818*)C))->_cc/*24*/)!=('\0')) {
  5119. r818fcp(C,((T0*)ms52_818));
  5120. }
  5121. /*FI*/}
  5122. else {
  5123. r818fcp(C,((T0*)ms53_818));
  5124. }
  5125. /*FI*/}
  5126. int r818skip1(T818* C,char a1){
  5127. int R=0;
  5128. /*IF*/if ((a1)==((((T818*)C))->_cc/*24*/)) {
  5129. C->_start_line=(((T818*)C))->_line/*16*/;
  5130. C->_start_column=(((T818*)C))->_column/*12*/;
  5131. R=1;
  5132. r818next_char(C);
  5133. r818skip_comments(C);
  5134. }
  5135. /*FI*/return R;
  5136. }
  5137. /*No:EIFFEL_PARSER.us_plus*/
  5138. void r818a_r1(T818* C,T0* a1){
  5139. T0* _sp=NULL;
  5140. T0* _infix_implies=NULL;
  5141. /*IF*/if (r818a_keyword(C,((T0*)ms34_473))) {
  5142. {T627*n=malloc(sizeof(*n));
  5143. *n=M627;
  5144. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5145. _sp=(T0*)n;
  5146. }
  5147. /*IF*/if (r818a_e1(C)) {
  5148. {T90*n=malloc(sizeof(*n));
  5149. *n=M90;
  5150. r90make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5151. _infix_implies=(T0*)n;
  5152. }
  5153. r818a_r1(C,_infix_implies);
  5154. }
  5155. else {
  5156. r818error(_sp,((T0*)ms119_818));
  5157. }
  5158. /*FI*/}
  5159. else {
  5160. C->_last_expression=a1;
  5161. }
  5162. /*FI*/}
  5163. int r818a_e1(T818* C){
  5164. int R=0;
  5165. R=r818a_e2(C);
  5166. r818a_r2(C,(((T818*)C))->_last_expression/*97*/);
  5167. return R;
  5168. }
  5169. /*No:EIFFEL_PARSER.last_type_formal_generic*/
  5170. /*No:EIFFEL_PARSER.em10*/
  5171. /*No:EIFFEL_PARSER.em20*/
  5172. int r818skip2(T818* C,char a1,char a2){
  5173. int R=0;
  5174. /*IF*/if ((a1)==((((T818*)C))->_cc/*24*/)) {
  5175. C->_start_line=(((T818*)C))->_line/*16*/;
  5176. C->_start_column=(((T818*)C))->_column/*12*/;
  5177. r818next_char(C);
  5178. /*IF*/if ((a2)==((((T818*)C))->_cc/*24*/)) {
  5179. R=1;
  5180. r818next_char(C);
  5181. r818skip_comments(C);
  5182. }
  5183. else {
  5184. r818prev_char(C);
  5185. }
  5186. /*FI*/}
  5187. /*FI*/return R;
  5188. }
  5189. void r818a_r2(T818* C,T0* a1){
  5190. T0* _sp=NULL;
  5191. T0* _infix_xor=NULL;
  5192. T0* _infix_or=NULL;
  5193. T0* _infix_or_else=NULL;
  5194. /*IF*/if (r818a_keyword(C,((T0*)ms41_473))) {
  5195. {T627*n=malloc(sizeof(*n));
  5196. *n=M627;
  5197. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5198. _sp=(T0*)n;
  5199. }
  5200. /*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
  5201. /*IF*/if (r818a_e2(C)) {
  5202. {T278*n=malloc(sizeof(*n));
  5203. *n=M278;
  5204. r278make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5205. _infix_or_else=(T0*)n;
  5206. }
  5207. r818a_r2(C,_infix_or_else);
  5208. }
  5209. else {
  5210. r818err_exp(_sp,((T0*)ms42_473));
  5211. }
  5212. /*FI*/}
  5213. else {
  5214. /*IF*/if (r818a_e2(C)) {
  5215. {T121*n=malloc(sizeof(*n));
  5216. *n=M121;
  5217. r121make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5218. _infix_or=(T0*)n;
  5219. }
  5220. r818a_r2(C,_infix_or);
  5221. }
  5222. else {
  5223. r818err_exp(_sp,((T0*)ms41_473));
  5224. }
  5225. /*FI*/}
  5226. /*FI*/}
  5227.  else if (r818a_keyword(C,((T0*)ms50_473))) {
  5228. {T627*n=malloc(sizeof(*n));
  5229. *n=M627;
  5230. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5231. _sp=(T0*)n;
  5232. }
  5233. /*IF*/if (r818a_e2(C)) {
  5234. {T760*n=malloc(sizeof(*n));
  5235. *n=M760;
  5236. r760make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5237. _infix_xor=(T0*)n;
  5238. }
  5239. r818a_r2(C,_infix_xor);
  5240. }
  5241. else {
  5242. r818err_exp(_sp,((T0*)ms50_473));
  5243. }
  5244. /*FI*/}
  5245. else {
  5246. C->_last_expression=a1;
  5247. }
  5248. /*FI*/}
  5249. int r818a_e2(T818* C){
  5250. int R=0;
  5251. R=r818a_e3(C);
  5252. r818a_r3(C,(((T818*)C))->_last_expression/*97*/);
  5253. return R;
  5254. }
  5255. /*No:EIFFEL_PARSER.em11*/
  5256. /*No:EIFFEL_PARSER.fz_expanded*/
  5257. void r818a_r3(T818* C,T0* a1){
  5258. T0* _sp=NULL;
  5259. T0* _infix_and=NULL;
  5260. T0* _infix_and_then=NULL;
  5261. /*IF*/if (r818a_keyword(C,((T0*)ms27_473))) {
  5262. {T627*n=malloc(sizeof(*n));
  5263. *n=M627;
  5264. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5265. _sp=(T0*)n;
  5266. }
  5267. /*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
  5268. /*IF*/if (r818a_e3(C)) {
  5269. {T655*n=malloc(sizeof(*n));
  5270. *n=M655;
  5271. r655make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5272. _infix_and_then=(T0*)n;
  5273. }
  5274. r818a_r3(C,_infix_and_then);
  5275. }
  5276. else {
  5277. r818err_exp(_sp,((T0*)ms28_473));
  5278. }
  5279. /*FI*/}
  5280. else {
  5281. /*IF*/if (r818a_e3(C)) {
  5282. {T313*n=malloc(sizeof(*n));
  5283. *n=M313;
  5284. r313make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5285. _infix_and=(T0*)n;
  5286. }
  5287. r818a_r3(C,_infix_and);
  5288. }
  5289. else {
  5290. r818err_exp(_sp,((T0*)ms27_473));
  5291. }
  5292. /*FI*/}
  5293. /*FI*/}
  5294. else {
  5295. C->_last_expression=a1;
  5296. }
  5297. /*FI*/}
  5298. int r818a_e3(T818* C){
  5299. int R=0;
  5300. R=r818a_e4(C);
  5301. r818a_r4(C,(((T818*)C))->_last_expression/*97*/);
  5302. return R;
  5303. }
  5304. /*No:EIFFEL_PARSER.fz_class*/
  5305. /*No:EIFFEL_PARSER.last_base_class*/
  5306. /*No:EIFFEL_PARSER.fz_infix*/
  5307. /*No:EIFFEL_PARSER.em12*/
  5308. T0*oBC818forbidden_class=NULL;
  5309. /*No:EIFFEL_PARSER.us_lt*/
  5310. /*No:EIFFEL_PARSER.us_or*/
  5311. void r818a_r4(T818* C,T0* a1){
  5312. T0* _sp=NULL;
  5313. T0* _infix_gt=NULL;
  5314. T0* _infix_ge=NULL;
  5315. T0* _infix_lt=NULL;
  5316. T0* _infix_le=NULL;
  5317. T0* _infix_neq=NULL;
  5318. T0* _infix_eq=NULL;
  5319. /*IF*/if (r818skip1(C,'\75')) {
  5320. {T627*n=malloc(sizeof(*n));
  5321. *n=M627;
  5322. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5323. _sp=(T0*)n;
  5324. }
  5325. /*IF*/if (r818a_e4(C)) {
  5326. {T999*n=malloc(sizeof(*n));
  5327. *n=M999;
  5328. r999make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5329. _infix_eq=(T0*)n;
  5330. }
  5331. r818a_r4(C,_infix_eq);
  5332. }
  5333. else {
  5334. r818err_exp(_sp,((T0*)ms31_473));
  5335. }
  5336. /*FI*/}
  5337.  else if (r818skip2(C,'\57','\75')) {
  5338. {T627*n=malloc(sizeof(*n));
  5339. *n=M627;
  5340. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5341. _sp=(T0*)n;
  5342. }
  5343. /*IF*/if (r818a_e4(C)) {
  5344. {T517*n=malloc(sizeof(*n));
  5345. *n=M517;
  5346. r517make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5347. _infix_neq=(T0*)n;
  5348. }
  5349. r818a_r4(C,_infix_neq);
  5350. }
  5351. else {
  5352. r818err_exp(_sp,((T0*)ms39_473));
  5353. }
  5354. /*FI*/}
  5355.  else if (r818skip2(C,'\74','\75')) {
  5356. {T627*n=malloc(sizeof(*n));
  5357. *n=M627;
  5358. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5359. _sp=(T0*)n;
  5360. }
  5361. /*IF*/if (r818a_e4(C)) {
  5362. {T932*n=malloc(sizeof(*n));
  5363. *n=M932;
  5364. r932make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5365. _infix_le=(T0*)n;
  5366. }
  5367. r818a_r4(C,_infix_le);
  5368. }
  5369. else {
  5370. r818err_exp(_sp,((T0*)ms35_473));
  5371. }
  5372. /*FI*/}
  5373.  else if (r818skip2(C,'\76','\75')) {
  5374. {T627*n=malloc(sizeof(*n));
  5375. *n=M627;
  5376. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5377. _sp=(T0*)n;
  5378. }
  5379. /*IF*/if (r818a_e4(C)) {
  5380. {T890*n=malloc(sizeof(*n));
  5381. *n=M890;
  5382. r890make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5383. _infix_ge=(T0*)n;
  5384. }
  5385. r818a_r4(C,_infix_ge);
  5386. }
  5387. else {
  5388. r818err_exp(_sp,((T0*)ms32_473));
  5389. }
  5390. /*FI*/}
  5391.  else if (r818skip1(C,'\74')) {
  5392. {T627*n=malloc(sizeof(*n));
  5393. *n=M627;
  5394. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5395. _sp=(T0*)n;
  5396. }
  5397. /*IF*/if (r818a_e4(C)) {
  5398. {T112*n=malloc(sizeof(*n));
  5399. *n=M112;
  5400. r112make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5401. _infix_lt=(T0*)n;
  5402. }
  5403. r818a_r4(C,_infix_lt);
  5404. }
  5405. else {
  5406. r818err_exp(_sp,((T0*)ms36_473));
  5407. }
  5408. /*FI*/}
  5409.  else if (r818skip1unless2(C,'\76','\76')) {
  5410. {T627*n=malloc(sizeof(*n));
  5411. *n=M627;
  5412. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  5413. _sp=(T0*)n;
  5414. }
  5415. /*IF*/if (r818a_e4(C)) {
  5416. {T57*n=malloc(sizeof(*n));
  5417. *n=M57;
  5418. r57make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  5419. _infix_gt=(T0*)n;
  5420. }
  5421. r818a_r4(C,_infix_gt);
  5422. }
  5423. else {
  5424. r818err_exp(_sp,((T0*)ms33_473));
  5425. }
  5426. /*FI*/}
  5427. else {
  5428. C->_last_expression=a1;
  5429. }
  5430. /*FI*/}
  5431. int r818a_e4(T818* C){
  5432. int R=0;
  5433. R=r818a_e5(C);
  5434. r818a_r5(C,(((T818*)C))->_last_expression/*97*/);
  5435. return R;
  5436. }
  5437. /*No:EIFFEL_PARSER.us_any*/
  5438. /*No:EIFFEL_PARSER.em13*/
  5439. /*No:EIFFEL_PARSER.current_class_name*/
  5440. /*No:EIFFEL_PARSER.fz_strip*/
  5441. void r390check_creation_clause(T390* C,T0* a1){
  5442. T0* _args=NULL;
  5443. T0* _top=NULL;
  5444. T0* _bottom=NULL;
  5445. T0* _fn=NULL;
  5446. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/);
  5447. /*IF*/if (X291is_like_current(a1)) {
  5448. _top=r627base_class(((T627*)(X776start_position(_fn))));
  5449. _bottom=X291base_class(a1);
  5450. _fn=r605new_name_of(((T605*)_bottom),_top,_fn);
  5451. /*IF*/if ((_fn)==((void*)(NULL))) {
  5452. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/);
  5453. r683add_position(X776start_position(_fn));
  5454. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  5455. r7append(((T7*)(oBC683explanation)),b1);
  5456. }/*]*/
  5457. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  5458. r7append(((T7*)(oBC683explanation)),b1);
  5459. }/*]*/
  5460. /*[IRF3.6append*/{T0* b1=((T0*)ms1_394);
  5461. r7append(((T7*)(oBC683explanation)),b1);
  5462. }/*]*/
  5463. /*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
  5464. r7append(((T7*)(oBC683explanation)),b1);
  5465. }/*]*/
  5466. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
  5467. r683fatal_error(((T683*)(oBC364eh)),b1);
  5468. }/*]*/
  5469. }
  5470. /*FI*/}
  5471. /*FI*/C->_run_feature=r355get_feature(((T355*)(X291run_class(a1))),_fn);
  5472. /*IF*/if (((((T390*)C))->_run_feature/*16*/)==((void*)(NULL))) {
  5473. r390cp_not_found(C,_fn);
  5474. }
  5475. /*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  5476. }
  5477.  else if (!(X291has_creation(a1,_fn))) {
  5478. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/)));
  5479. r683add_position(X776start_position(_fn));
  5480. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  5481. r7append(((T7*)(oBC683explanation)),b1);
  5482. }/*]*/
  5483. /*[IRF3.6append*/{T0* b1=((T0*)ms2_394);
  5484. r7append(((T7*)(oBC683explanation)),b1);
  5485. }/*]*/
  5486. r683add_type(a1,((T0*)ms67_470));
  5487. r683print_as_fatal_error(((T683*)(oBC364eh)));
  5488. }
  5489. /*FI*/X496add_client((((T390*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T390*)C))->_run_compound/*4*/))));
  5490. /*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T390*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  5491. r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/));
  5492. r683add_position(X776start_position(_fn));
  5493. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394);
  5494. r683fatal_error(((T683*)(oBC364eh)),b1);
  5495. }/*]*/
  5496. }
  5497. /*FI*//*IF*/if (((r390arg_count(C))==(0))&&((/*X496*/((T0*)(((T832*)((T832*)((((T390*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) {
  5498. r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/));
  5499. r683add_position((((T390*)C))->_start_position/*8*/);
  5500. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394);
  5501. r683fatal_error(((T683*)(oBC364eh)),b1);
  5502. }/*]*/
  5503. }
  5504. /*FI*//*IF*/if ((r390arg_count(C))>(0)) {
  5505. _args=r431to_runnable(((T431*)(X173arguments((((T390*)C))->_call/*20*/))),r390current_type(C));
  5506. /*IF*/if ((_args)==((void*)(NULL))) {
  5507. r390error(r431start_position(((T431*)(X173arguments((((T390*)C))->_call/*20*/)))),((T0*)ms56_470));
  5508. }
  5509. else {
  5510. r431match_with(((T431*)_args),(((T390*)C))->_run_feature/*16*/);
  5511. }
  5512. /*FI*/}
  5513. /*FI*/C->_call=X173make_runnable((((T390*)C))->_call/*20*/,(((T390*)C))->_run_compound/*4*/,(((T390*)C))->_writable/*12*/,_args,(((T390*)C))->_run_feature/*16*/);
  5514. }
  5515. T0* r390add_comment(T390* C,T0* a1){
  5516. T0* R=NULL;
  5517. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  5518. R=(T0*)C;
  5519. }
  5520. /*AF*/else {
  5521. {T46*n=malloc(sizeof(*n));
  5522. *n=M46;
  5523. r46make(n,(T0*)C,a1);
  5524. R=(T0*)n;
  5525. }
  5526. }
  5527. /*FI*/return R;
  5528. }
  5529. void r390check_created_type(T390* C,T0* a1){
  5530. T0* _rt=NULL;
  5531. _rt=X291run_type(a1);
  5532. /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  5533. }
  5534.  else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
  5535. r683add_type(_rt,((T0*)ms2_747));
  5536. r683add_position((((T390*)C))->_start_position/*8*/);
  5537. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
  5538. r683fatal_error(((T683*)(oBC364eh)),b1);
  5539. }/*]*/
  5540. }
  5541. /*FI*//*IF*/if (X291is_formal_generic(a1)) {
  5542. r683add_position((((T390*)C))->_start_position/*8*/);
  5543. /*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
  5544. r7append(((T7*)(oBC683explanation)),b1);
  5545. }/*]*/
  5546. r683add_type(a1,((T0*)ms5_747));
  5547. r683print_as_fatal_error(((T683*)(oBC364eh)));
  5548. }
  5549. /*FI*/r355set_at_run_time(((T355*)(X291run_class(_rt))));
  5550. }
  5551. void r390cp_not_found(T390* C,T0* a1){
  5552. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/)));
  5553. r683add_position(X776start_position(a1));
  5554. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394);
  5555. r683fatal_error(((T683*)(oBC364eh)),b1);
  5556. }/*]*/
  5557. }
  5558. /*No:CREATION_CALL_3.writable*/
  5559. /*No:CREATION_CALL_3.us_dictionary*/
  5560. /*No:CREATION_CALL_3.us_with_capacity*/
  5561. /*No:CREATION_CALL_3.fz_bad_arguments*/
  5562. /*No:CREATION_CALL_3.us_array*/
  5563.  
  5564.